#ifndef _DRV_STRUCT_TMM_H
#define _DRV_STRUCT_TMM_H

#ifdef __cplusplus
extern "C" {
#endif

#if (HOST_IS_LE == 1)
struct ds_desc_tmm_s
{
    /*word0*/
    uint32 u1_pkt_sop               : 1;
    uint32 u1_pkt_eop               : 1;
    uint32 u1_pkt_pkt_error         : 1;
    uint32 u1_pkt_trunc_pkt         : 1;
    uint32 u1_pkt_trunc_en          : 1;
    uint32 u2_pkt_drop              : 1;
    uint32 atomic                   : 2;
    uint32 data_struct              : 6;
    uint32 intr_mask                : 1;
    uint32 pause                    : 1;
    uint32 done                     : 1;
    uint32 error                    : 1;
    uint32 desc_error               : 1;
    uint32 data_rror                : 1;
    uint32 cfg_size_20_11_0         : 12;
    /*word1*/
    uint32 cfg_size_20_19_12        : 8;
    uint32 real_size                : 20;
    uint32 valid0                   : 1;
    uint32 desc_rsv                 : 3;
    /*word2*/
    uint32 ts_shift                 : 4;
    uint32 mem_addr                 : 28;
    /*word3*/
    uint32 ts_addr                  : 32;
    /*word4*/
    uint32 timestamp_64_31_0        : 32;
    /*word5*/
    uint32 timestamp_64_63_32       : 32;
    /*word6*/
    uint32 tcam_scan_addr0          : 32;
    /*word7*/
    uint32 u3_config_cfg_rsv        : 31;
    uint32 valid                    : 1;
};

struct ms_packet_header_tmm_s
{
    /*word9[31:0]*/ 
    uint32 prio_4_3_2                                                                               : 2;
    uint32 dest_map                                                                                 : 19;
    uint32 packet_offset                                                                            : 8;
    uint32 bypass_ipe                                                                               : 1;
    uint32 replicated                                                                               : 1;
    uint32 is_int_share_fields_mode                                                                 : 1;
    
    /*word8[31:0]*/
    uint32 source_port_16_15_1                                                                      : 15;
    uint32 logic_port_type                                                                          : 1;
    uint32 header_hash                                                                              : 8;
    uint32 src_stag_cos                                                                             : 3;
    uint32 packet_type                                                                              : 3;
    uint32 prio_4_1_0 : 2;

    /*word7[31:0]*/
    uint32 next_hop_ptr_18_17_1                                                                     : 17;
    uint32 color                                                                                    : 2;
    uint32 src_svlan_id                                                                             : 12;
    uint32 source_port_16_0_0                                                                       : 1;

    /*word6[31:0]*/
    uint32 src_vlan_ptr_14_13_1                                                                     : 13;
    uint32 svlan_tpid_index                                                                         : 2;
    uint32 from_cpu_or_oam                                                                          : 1;
    uint32 outer_vlan_is_cvlan                                                                      : 1;
    uint32 ingress_edit_en                                                                          : 1;
    uint32 from_cpu_lm_down_disable                                                                 : 1;
    uint32 ds_nexthop_bypass_all                                                                    : 1;
    uint32 bypass_ingress_edit                                                                      : 1;
    uint32 from_fabric                                                                              : 1;
    uint32 source_port_extender                                                                     : 1;
    uint32 svlan_tag_operation_valid                                                                : 1;
    uint32 from_cpu_lm_up_disable                                                                   : 1;
    uint32 port_mac_sa_en                                                                           : 1;
    uint32 next_hop_ext                                                                             : 1;
    uint32 src_stag_cfi                                                                             : 1;
    uint32 is_leaf                                                                                  : 1;
    uint32 critical_packet                                                                          : 1;
    uint32 from_lag                                                                                 : 1;
    uint32 next_hop_ptr_18_0_0                                                                      : 1;

    /*word5[31:0]*/
    uint32 logic_src_port_15_14_9                                                                   : 6;
    uint32 fid                                                                                      : 15;
    uint32 oam_use_fid                                                                              : 1;
    uint32 mac_known                                                                                : 1;
    uint32 stag_action                                                                              : 2;
    uint32 is_debugged_pkt                                                                          : 1;
    uint32 mac_learning_en                                                                          : 1;
    uint32 bridge_operation                                                                         : 1;
    uint32 oam_tunnel_en                                                                            : 1;
    uint32 mux_length_type                                                                          : 2;
    uint32 src_vlan_ptr_14_0_0                                                                      : 1;

    /*word4[31:0]*/
    uint32 timestamp_36_5_31_30                                                                     : 2;
    uint32 local_phy_port                                                                           : 9;
    uint32 from_cpu                                                                                 : 1;
    uint32 operation_type                                                                           : 3;
    uint32 ttl                                                                                      : 8;
    uint32 logic_src_port_15_8_0                                                                    : 9;

    /*word3[31:0]*/
    uint32 u1_data                                                                                  : 2;
    uint32 timestamp_36_5_29_0                                                                      : 30;

    /*word0-2[31:0]*/
    union 
    {
        struct
        {
            uint32 c2c_reserved_79_76_45                                                            : 32;

            uint32 c2c_reserved_79_44_13                                                            : 32;

            uint32 stacking_src_port                                                                : 16;
            uint32 c2c_check_disable                                                                : 1;
            uint32 sgmac_strip_header                                                               : 1;
            uint32 neighbor_discover_packet                                                         : 1;
            uint32 c2c_reserved_79_12_0                                                             : 13;
        }c2c;
    
        struct
        {
            uint32 dm_reserved_90_87_56                                                             : 32;

            uint32 dm_reserved_90_55_24                                                             : 32;

            uint32 dm_offset                                                                        : 8;
            uint32 dm_reserved_90_23_0                                                              : 24;
        }dmtx;

        struct
        {
            
            uint32 hmac_reserved_79_76_45                                                           : 32;

            uint32 hmac_reserved_79_44_13                                                           : 32;

            uint32 hmac_check_fail                                                                  : 1;
            uint32 sha_key_index                                                                    : 10;
            uint32 hmac_offset                                                                      : 8;
            uint32 hmac_reserved_79_12_0                                                            : 13;
        }hmac;

        struct
        {
            uint32 src_vlan_ptr_14_13_13                                                            : 1;
            uint32 int_dest_port_load                                                               : 23;
            uint32 src_local_phy_port_9_7_0                                                         : 8;

            uint32 queue_depth_16_15_12                                                             : 4;
            uint32 logic_dest_port                                                                  : 15;
            uint32 src_vlan_ptr_14_12_0                                                             : 13;

            uint32 latency                                                                          : 20;
            uint32 queue_depth_16_11_0                                                              : 12;
        }intdata;

        struct
        {
            uint32 tx_fcb                                                                           : 32;

            uint32 rx_fcb                                                                           : 32;

            uint32 rxtx_fcl                                                                         : 32;
        }lmtx;

        struct
        {
            uint32 ctag_action                                                                      : 2;
            uint32 cn_action                                                                        : 2;
            uint32 src_dscp                                                                         : 6;
            uint32 src_dscp_valid                                                                   : 1;
            uint32 acl_dscp_valid                                                                   : 1;
            uint32 ecmp_hash                                                                        : 8;
            uint32 terminate_cid_hdr                                                                : 1;
            uint32 acl_ctag_cfi_valid                                                               : 1;
            uint32 acl_stag_cfi_valid                                                               : 1;
            uint32 acl_ctag_cos_valid                                                               : 1;
            uint32 acl_stag_cos_valid                                                               : 1;
            uint32 is_span_pkt                                                                      : 1;
            uint32 port_isolate_type                                                                : 3;
            uint32 bypass_cflex_src_check                                                           : 1;
            uint32 cflex_fwd_sg_group_sel_3_1_0                                                     : 2;

            uint32 metadata_15_14_10                                                                : 5;
            uint32 metadata_type                                                                    : 2;
            uint32 cvlan_tag_operation_valid                                                        : 1;
            uint32 src_cvlan_id                                                                     : 12;
            uint32 source_port_isolateId                                                            : 7;
            uint32 srcCtagOffsetType                                                                : 1;
            uint32 srcCtagCfi                                                                       : 1;
            uint32 src_ctag_cos                                                                     : 3;

            uint32 bypass_phy_port_check                                                            : 1;
            uint32 mac_da_low_bits                                                                  : 4;
            uint32 next_hop_save_en                                                                 : 1;
            uint32 truncate_len_prof_id                                                             : 4;
            uint32 src_cid_hdr_offset_type                                                          : 2;
            uint32 pkt_with_cid_header                                                              : 1;
            uint32 i2e_src_cid                                                                      : 8;
            uint32 i2e_src_cid_valid                                                                : 1;
            uint32 metadata_15_9_0                                                                  : 10;
        }normal;

        struct
        {
            
            uint32 lm_received_packet                                                               : 1;
            uint32 dm_en                                                                            : 1;
            uint32 is_up                                                                            : 1;
            uint32 use_oam_ttl                                                                      : 1;
            uint32 gal_exist                                                                        : 1;
            uint32 iloop_to_agg_or_remote_up_mep                                                    : 1;
            uint32 link_oam                                                                         : 1;
            uint32 oam_type                                                                         : 4;
            uint32 mep_index                                                                        : 14;
            uint32 rx_oam                                                                           : 1;
            uint32 microbfd_mac_da_valid                                                            : 1;
            uint32 mip_en                                                                           : 1;
            uint32 twamp_ts_type                                                                    : 1;
            uint32 twamp_is_ack                                                                     : 1;
            uint32 oam_reserved_4_1_0                                                               : 2;

            uint32 rx_fcb                                                                           : 32;

            uint32 rxtx_fcl_l_or_dm_offset                                                          : 8;
            uint32 rxtx_fcl_h                                                                       : 24;
        }oam;

        struct
        {
            uint32 ptp_reserved_38_35_4                                                             : 32;

            uint32 timestamp_61_37_25_24_4                                                          : 21;
            uint32 ptp_transport_specific                                                           : 1;
            uint32 ptp_msg_type                                                                     : 2;
            uint32 ptp_sequence_id                                                                  : 4;
            uint32 ptp_reserved_38_3_0                                                              : 4;

            uint32 is_cflex_update_residence_time                                                   : 1;
            uint32 src_dscp                                                                         : 6;
            uint32 src_dscp_valid                                                                   : 1;
            uint32 acl_dscp_valid                                                                   : 1;
            uint32 ptp_offset                                                                       : 8;
            uint32 ptp_update_residence_time                                                        : 1;
            uint32 ptp_apply_egress_asymmetry_delay                                                 : 1;
            uint32 ptp_replace_timestamp                                                            : 1;
            uint32 ptp_capture_timestamp                                                            : 1;
            uint32 is_l4_ptp                                                                        : 1;
            uint32 is_l2_ptp                                                                        : 1;
            uint32 timestamp_4_0                                                                    : 5;
            uint32 timestamp_61_37_25_3_0                                                           : 4;

        }ptp;
    }u1;


};

struct ms_packet_header_tmm_tail_s
{
        /*word1[31:0]*/
    uint32 dest_port_16_15_8:8;
    uint32 dest_is_lag:1;
    uint32 bypass_macsec_proc:1;
    uint32 use_outer_service:1;
    uint32 int_and_sr_shared:14;
    uint32 is_sniffing_packet:1;
    uint32 cpu_reserved:6;

    /*word0[31:0]*/
    uint32 service_id:10;
    uint32 dest_channel_id_from_cpu:8;
    uint32 dest_slice_id_from_cpu:2;
    uint32 dest_channel_id_valid_from_cpu:1;
    uint32 que_map_type:3;
    uint32 dest_port_16_7_0:8;

};
struct ds_eth_mep_tmm_s 
{
    uint32  mepType : 4;
    uint32  ethOamP2PMode : 1;
    uint32  active : 1;
    uint32  isBfd : 1;
    uint32  isRemote : 1;
    uint32  isUp : 1;
    uint32  maIndex : 13;
    uint32  ccmInterval : 3;
    uint32  portId_0_6 : 7;

    uint32  portId_7_8 : 2;
    uint32  mepId : 13;
    uint32  mepPrimaryVid : 12;
    uint32  maIdCheckDisable : 1;
    uint32  apsBridgeEn : 1;
    uint32  enablePm : 1;
    uint32  cciEn : 1;
    uint32  seqNumEn : 1;

    uint32  shareMacEn : 1;
    uint32  p2pUseUcDa : 1;
    uint32  ccmSeqNum_0_29 : 30;

    uint32  ccmSeqNum_30_31 : 2;
    uint32  autoGenPktPtr : 4;
    uint32  dMegLvlTimer : 4;
    uint32  dMismergeTimer : 4;
    uint32  dUnexpMepTimer : 4;
    uint32  dMegLvl : 1;
    uint32  dMismerge : 1;
    uint32  dUnexpMep : 1;
    uint32  tpidType : 2;
    uint32  presentRdi : 1;
    uint32  rmepLastRdi : 1;
    uint32  portStatus : 2;
    uint32  autoGenEn : 1;
    uint32  cciWhile : 3;
    uint32  apsSignalFailLocal_0_0 : 1;

    uint32  apsSignalFailLocal_1_2 : 2;
    uint32  destMap : 19;
    uint32  learnEn : 1;
    uint32  unknownCcmNum : 3;
    uint32  ccmStatEn : 1;
    uint32  u1__0_5 : 6;

    uint32  u1__6_15 : 10;
    uint32  protectionPath : 1;
    uint32  twampIndex : 9;
    uint32  rsv0 : 12;

};

struct ds_eth_rmep_tmm_s
{
    uint32  mepType : 4;
    uint32  ethOamP2PMode : 1;
    uint32  active : 1;
    uint32  isBfd : 1;
    uint32  isRemote : 1;
    uint32  isUp : 1;
    uint32  protectionPath : 1;
    uint32  u3_ : 14;
    uint32  rmepMacMismatch : 1;
    uint32  seqNumEn : 1;
    uint32  macStatusChange : 1;
    uint32  isCsfEn : 1;
    uint32  apsSignalFailRemote_0_3 : 4;

    uint32  apsSignalFailRemote_4_4 : 1;
    uint32  rmepMacSa_0_30 : 31;

    uint32  rmepMacSa_31_47 : 17;
    uint32  u1__0_14 : 15;

    uint32  u1__15_31 : 17;
    uint32  cntShiftWhile : 3;
    uint32  expCcmNum : 8;
    uint32  dLoc : 1;
    uint32  dUnexpPeriodTimer_0_2 : 3;

    uint32  dUnexpPeriodTimer_3_3 : 1;
    uint32  dUnexpPeriod : 1;
    uint32  rmepLastRdi : 1;
    uint32  rmepWhile : 4;
    uint32  macAddrUpdateDisable : 1;
    uint32  seqNumFailCounter : 6;
    uint32  rmepLastPortStatus : 2;
    uint32  firstPktRx : 1;
    uint32  rmepLastIntfStatus : 3;
    uint32  apsGroupId : 12;

    uint32  fastApsEn : 1;
    uint32  isDmmUseUcDa : 1;
    uint32  donotCareFirstPktRx : 1;
    uint32  suppressLoc : 1;
    uint32  autoGenPktPtrHi : 1;
    uint32  rsv0 : 27;
};

struct ds_bfd_mep_tmm_s
{
    uint32  mepType : 4;
    uint32  ethOamP2PMode : 1;
    uint32  active : 1;
    uint32  isBfd : 1;
    uint32  isRemote : 1;
    uint32  isUp : 1;
    uint32  maIndex : 13;
    uint32  ccmInterval : 3;
    uint32  cciEn : 1;
    uint32  localDiag : 5;
    uint32  microBFD : 1;

    uint32  u2_ : 16;
    uint32  helloWhile : 10;
    uint32  apsGroupId : 6;

    uint32  u1_ : 32;

    uint32  ccTxMode : 1;
    uint32  ipDaL : 20;
    uint32  actualMinTxInterval : 10;
    uint32  desiredMinTxInterval_0_0 : 1;

    uint32  desiredMinTxInterval_1_9 : 9;
    uint32  localStat : 2;
    uint32  destMap : 19;
    uint32  rxCsfWhile_0_1 : 2;

    uint32  rxCsfWhile_2_12 : 11;
    uint32  twampIndex : 9;
    uint32  rsv : 12;
};

struct ds_bfd_rmep_tmm_s
{
    uint32  mepType : 4;
    uint32  ethOamP2PMode : 1;
    uint32  active : 1;
    uint32  isBfd : 1;
    uint32  isRemote : 1;
    uint32  isUp : 1;
    uint32  protectionPath : 1;
    uint32  requiredMinRxInterval : 10;
    uint32  actualRxInterval : 10;
    uint32  isCsfTxEn : 1;
    uint32  apsSignalFailRemote_0_0 : 1;

    uint32  apsSignalFailRemote_1_1 : 1;
    uint32  u1__0_30 : 31;

    uint32  u1__31_31 : 1;
    uint32  apsBridgeEn : 1;
    uint32  remoteDiag : 5;
    uint32  discChkEn : 1;
    uint32  fbit : 1;
    uint32  fastApsEn : 1;
    uint32  localDefectMult : 4;
    uint32  defectWhile : 14;
    uint32  defectMult : 4;

    uint32  firstPktRx : 1;
    uint32  u2__0_30 : 31;

    uint32  u2__31_31 : 1;
    uint32  isCvEn : 1;
    uint32  isCsfEn : 1;
    uint32  remoteStat : 2;
    uint32  achChanType : 3;
    uint32  isMultiHop : 1;
    uint32  slowTxTimerCfg : 2;
    uint32  ipDaH : 12;
    uint32  echoRxEn : 1;
    uint32  dLoc : 1;
    uint32  ipBfdTtl_0_6 : 7;

    uint32  ipBfdTtl_7_7 : 1;
    uint32  learnEn : 1;
    uint32  timeNegotiation : 1;
    uint32  pbit : 1;
    uint32  ccTxMode : 1;
    uint32  apsGroupId : 6;
    uint32  remoteReqMinRxIntIsZero : 1;
    uint32  donotCareFirstPktRx : 1;
    uint32  timeNegDone : 1;
    uint32  silentTail : 1;
    uint32  unicastRcvd : 1;
    uint32  isHeadPoll : 1;
    uint32  headPbitCnt : 3;
    uint32  rsv0 : 12;
};
struct sys_ipfix_l2_hashkey_decode_s
{
    uint32  hashKeyType0 : 3;
    uint32  ipfixCfgProfileId : 8;
    uint32  flowFieldSel : 4;
    uint32  globalPort : 17;

    uint32  macDa_0_31 : 32;

    uint32  macDa_32_47 : 16;
    uint32  macSa_0_15 : 16;

    uint32  macSa_16_39 : 24;
    uint32  rsv0 : 8;

    uint32  hashKeyType1 : 3;
    uint32  macSa_40_47 : 8;
    uint32  svtagCfi : 1;
    uint32  svlanId : 12;
    uint32  svtagCos : 3;
    uint32  svlanIdValid : 1;
    uint32  cvtagCfi : 1;
    uint32  cvtagCos : 3;

    uint32  cvlanId : 12;
    uint32  cvlanIdValid : 1;
    uint32  etherType : 16;
    uint32  layer2Type : 3;

    uint32  destCategoryId : 16;
    uint32  srcCategoryId : 16;

    uint32  destCategoryIdClassfied : 1;
    uint32  srcCategoryIdClassfied : 1;
    uint32  vsiId : 15;
    uint32  rsv1 : 15;
};

struct sys_ipfix_ipv4_hashkey_decode_s
{
    uint32  hashKeyType0 : 3;
    uint32  ipfixCfgProfileId : 8;
    uint32  flowFieldSel : 4;
    uint32  globalPort : 17;

    uint32  uShareField_ : 16;
    uint32  uL4__0_15 : 16;

    uint32  uL4__16_31 : 16;
    uint32  ipDa_0_15 : 16;

    uint32  ipDa_16_31 : 16;
    uint32  ipSa_0_7 : 8;
    uint32  rsv0 : 8;

    uint32  hashKeyType1 : 3;
    uint32  ipSa_8_31 : 24;
    uint32  layer3HeaderProtocol_0_4 : 5;

    uint32  layer3HeaderProtocol_5_7 : 3;
    uint32  tcpFlags : 8;
    uint32  fragInfo : 2;
    uint32  vsiId : 15;
    uint32  destCategoryId_0_3 : 4;

    uint32  destCategoryId_4_15 : 12;
    uint32  destCategoryIdClassfied : 1;
    uint32  srcCategoryId : 16;
    uint32  srcCategoryIdClassfied : 1;
    uint32  isVxlan : 1;
    uint32  ecn_0_0 : 1;

    uint32  ecn_1_1 : 1;
    uint32  dscp : 6;
    uint32  ttl : 8;
    uint32  rsv1 : 17;
};
struct sys_ipfix_ipv6_hashkey_decode_s
{
    uint32  hashKeyType0 : 3;
    uint32  ipfixCfgProfileId : 8;
    uint32  flowFieldSel : 4;
    uint32  globalPort : 17;

    uint32  uL4_ : 32;

    uint32  destCategoryId : 16;
    uint32  destCategoryIdClassfied : 1;
    uint32  srcCategoryId_0_14 : 15;

    uint32  srcCategoryId_15_15 : 1;
    uint32  srcCategoryIdClassfied : 1;
    uint32  mergeData_0_21 : 22;
    uint32  rsv0 : 8;

    uint32  hashKeyType1 : 3;
    uint32  mergeData_22_31 : 10;
    uint32  mergeDataType : 2;
    uint32  tcpFlags : 8;
    uint32  ipv6FlowLabel_0_8 : 9;

    uint32  ipv6FlowLabel_9_19 : 11;
    uint32  ttl : 8;
    uint32  ecn : 2;
    uint32  fragInfo : 2;
    uint32  ipDa_0_8 : 9;

    uint32  ipDa_9_40 : 32;

    uint32  ipDa_41_64 : 24;
    uint32  rsv1 : 8;

    uint32  hashKeyType2 : 3;
    uint32  ipDa_65_93 : 29;

    uint32  ipDa_94_125 : 32;

    uint32  ipDa_126_127 : 2;
    uint32  ipSa_0_29 : 30;

    uint32  ipSa_30_53 : 24;
    uint32  rsv3 : 8;

    uint32  hashKeyType3 : 3;
    uint32  ipSa_54_82 : 29;

    uint32  ipSa_83_114 : 32;

    uint32  ipSa_115_127 : 13;
    uint32  layer3HeaderProtocol : 8;
    uint32  dscp : 6;
    uint32  vsiId_0_4 : 5;

    uint32  vsiId_5_14 : 10;
    uint32  isVxlan : 1;
    uint32  isMergeKey : 1;
    uint32  rsv4 : 20;
};

struct sys_ipfix_l2l3_hashkey_decode_s
{
    uint32  hashKeyType0 : 3;
    uint32  ipfixCfgProfileId : 8;
    uint32  flowFieldSel : 4;
    uint32  globalPort : 17;

    uint32  uL4__0_31 : 32;

    uint32  uL4__32_39 : 8;
    uint32  uL3__0_23 : 24;

    uint32  uL3__24_47 : 24;
    uint32  rsv0 : 8;

    uint32  hashKeyType1 : 3;
    uint32  uL3__48_76 : 29;

    uint32  uL3__77_99 : 23;
    uint32  mergeData_0_8 : 9;

    uint32  mergeData_9_31 : 23;
    uint32  mergeDataType : 2;
    uint32  destCategoryId_0_6 : 7;

    uint32  destCategoryId_7_15 : 9;
    uint32  srcCategoryId_0_14 : 15;
    uint32  rsv1 : 8;

    uint32  hashKeyType2 : 3;
    uint32  srcCategoryId_15_15 : 1;
    uint32  destCategoryIdClassfied : 1;
    uint32  srcCategoryIdClassfied : 1;
    uint32  macDa_0_25 : 26;

    uint32  macDa_26_47 : 22;
    uint32  macSa_0_9 : 10;

    uint32  macSa_10_41 : 32;

    uint32  macSa_42_47 : 6;
    uint32  svtagCfi : 1;
    uint32  svlanId : 12;
    uint32  svtagCos : 3;
    uint32  svlanIdValid : 1;
    uint32  cvtagCfi : 1;
    uint32  rsv2 : 8;

    uint32  hashKeyType3 : 3;
    uint32  cvlanId : 12;
    uint32  cvtagCos : 3;
    uint32  cvlanIdValid : 1;
    uint32  vrfId_0_12 : 13;

    uint32  vrfId_13_13 : 1;
    uint32  vsiId : 15;
    uint32  layer3HeaderProtocol : 8;
    uint32  etherType_0_7 : 8;

    uint32  etherType_8_15 : 8;
    uint32  isVxlan : 1;
    uint32  isMergeKey : 1;
    uint32  rsv3 : 22;

    uint32  rsv4 : 32;

};

struct sys_ipfix_mpls_hashkey_decode_s
{
    uint32  hashKeyType0 : 3;
    uint32  ipfixCfgProfileId : 8;
    uint32  flowFieldSel : 4;
    uint32  globalPort : 17;

    uint32  mplsLabel0 : 20;
    uint32  mplsExp0 : 3;
    uint32  mplsSbit0 : 1;
    uint32  mplsTtl0 : 8;

    uint32  mplsLabel1 : 20;
    uint32  mplsExp1 : 3;
    uint32  mplsSbit1 : 1;
    uint32  mplsTtl1 : 8;

    uint32  mplsLabel2 : 20;
    uint32  mplsExp2 : 3;
    uint32  mplsSbit2 : 1;
    uint32  rsv0 : 8;

    uint32  hashKeyType1 : 3;
    uint32  mplsTtl2 : 8;
    uint32  vsiId : 15;
    uint32  metadata_0_5 : 6;

    uint32  metadata_6_13 : 8;
    uint32  labelNum : 4;
    uint32  rsv1 : 20;

    uint32  rsv2 : 32;

    uint32  rsv3 : 32;
};

struct sys_ipfix_ipv4_short_hashkey_decode_s
{
    uint32  hashKeyType : 3;
    uint32  ipfixCfgProfileId : 8;
    uint32  flowFieldSel : 4;
    uint32  isIp : 1;
    uint32  uL3__0_15 : 16;

    uint32  uL3__16_47 : 32;

    uint32  uL3__48_79 : 32;

    uint32  uL3__80_103 : 24;
    uint32  rsv0 : 8;
};

struct sys_ipfix_ipv6_short_hashkey_decode_s
{
    uint32  hashKeyType0 : 3;
    uint32  ipfixCfgProfileId : 8;
    uint32  flowFieldSel : 4;
    uint32  l4DestPort : 16;
    uint32  l4SourcePort_0_0 : 1;

    uint32  l4SourcePort_1_15 : 15;
    uint32  layer3HeaderProtocol : 8;
    uint32  ipDaPrefix_0_8 : 9;

    uint32  ipDaPrefix_9_40 : 32;

    uint32  ipDaPrefix_41_63 : 23;
    uint32  ipSaPrefix_0_0 : 1;
    uint32  rsv0 : 8;

    uint32  hashKeyType1 : 3;
    uint32  ipSaPrefix_1_29 : 29;

    uint32  ipSaPrefix_30_61 : 32;

    uint32  ipSaPrefix_62_63 : 2;
    uint32  rsv1 : 30;

    uint32  rsv2 : 32;
};


struct sys_ipfix_half_record0_decode_s
{
    uint32  valid : 1;
    uint32  exportReason : 4;
    uint32  flowChangeCnt : 4;
    uint32  packetCount_0_22 : 23;

    uint32  packetCount_23_25 : 3;
    uint32  byteCount_0_28 : 29;

    uint32  byteCount_29_31 : 3;
    uint32  uDiscardInfo__0_28 : 29;

    uint32  uDiscardInfo__29_31 : 3;
    uint32  uDiscardInfoType : 1;
    uint32  expired : 1;
    uint32  tcpFlagsStatus : 8;
    uint32  isStaticEntry : 1;
    uint32  terminateFlowMirror : 1;
    uint32  mirrorPktCnt : 8;
    uint32  u1Type : 1;
    uint32  rsv0 : 8;
};

struct sys_ipfix_half_record1_decode_s
{
    uint32  valid : 1;
    uint32  exportReason : 4;
    uint32  flowChangeCnt : 4;
    uint32  packetCount_0_22 : 23;

    uint32  packetCount_23_25 : 3;
    uint32  byteCount_0_28 : 29;

    uint32  byteCount_29_31 : 3;
    uint32  uDiscardInfo__0_28 : 29;

    uint32  uDiscardInfo__29_31 : 3;
    uint32  uDiscardInfoType : 1;
    uint32  rsv0 : 28;
};

struct sys_ipfix_full_record0_decode_s
{
    uint32  valid : 1;
    uint32  exportReason : 4;
    uint32  flowChangeCnt : 4;
    uint32  packetCount_0_22 : 23;

    uint32  packetCount_23_25 : 3;
    uint32  byteCount_0_28 : 29;

    uint32  byteCount_29_31 : 3;
    uint32  uDiscardInfo__0_28 : 29;

    uint32  uDiscardInfo__29_31 : 3;
    uint32  uDiscardInfoType : 1;
    uint32  expired : 1;
    uint32  tcpFlagsStatus : 8;
    uint32  isStaticEntry : 1;
    uint32  terminateFlowMirror : 1;
    uint32  mirrorPktCnt : 8;
    uint32  u1Type : 1;
    uint32  rsv0 : 8;

    uint32  lastTs : 22;
    uint32  firstTs_0_9 : 10;

    uint32  firstTs_10_21 : 12;
    uint32  lastTtl : 8;
    uint32  maxTtl : 8;
    uint32  minTtl_0_3 : 4;

    uint32  minTtl_4_7 : 4;
    uint32  destinationType : 4;
    uint32  uDestinationInfo_ : 16;
    uint32  u1__0_7 : 8;

    uint32  u1__8_31 : 24;
    uint32  rsv1 : 8;
};

struct sys_ipfix_full_record1_decode_s
{
    uint32  valid : 1;
    uint32  exportReason : 4;
    uint32  flowChangeCnt : 4;
    uint32  packetCount_0_22 : 23;

    uint32  packetCount_23_25 : 3;
    uint32  byteCount_0_28 : 29;

    uint32  byteCount_29_31 : 3;
    uint32  uDiscardInfo__0_28 : 29;

    uint32  uDiscardInfo__29_31 : 3;
    uint32  uDiscardInfoType : 1;
    uint32  avgJitter_0_13 : 14;
    uint32  rsv0 : 14;

    uint32  avgJitter_14_15 : 2;
    uint32  maxJitter : 16;
    uint32  lastPktLatency_0_13 : 14;

    uint32  lastPktLatency_14_23 : 10;
    uint32  avgLatency_0_21 : 22;

    uint32  avgLatency_22_23 : 2;
    uint32  maxLatency : 24;
    uint32  minLatency_0_5 : 6;

    uint32  minLatency_6_23 : 18;
    uint32  rsv1 : 14;
};

typedef struct 
{
    uint32 packetCount_29_0:30;
    uint32 packetByte_1_0:2;
    uint32 packetByte_33_2;
    uint32 packetByte_37_34:4;
    uint32 sdk_rsv:28;
}DsStats_tmm_s;

typedef struct 
{
    uint32 packetCountDrop_29_0:30;
    uint32 sdk_rsv1:2;
    uint32 packetCountEnq_29_0:30;
    uint32 sdk_rsv2:2;
}DsStatsQueue_tmm_s;

struct cpu_info_tmm_s
{
    /*word0[31:0]*/
    uint32  infoSize            : 8;
    uint32  infoType            : 8;
    uint32  infoSubType         : 8;
    uint32  infoSource          : 8;

    /*word1[31:0]*/
    uint32  timestamp_31_0      : 32;

    /*word2[31:0]*/
    uint32  timestamp_63_32     : 32;
};


struct ms_efd_mon_tmm_s
{
    /*word0[31:0]*/
    uint32  efdMonPtr       : 13;
    uint32  rsv             : 19;
};


struct ms_latency_mon_tmm_s
{
    union
    {
        struct
        {
            uint32 infoType             :1;
            uint32 channelId            :8;
            uint32 localPhyPort         :8;
            uint32 region               :4;
            uint32 residenceTime_10_0   :11;

            uint32 residenceTime_42_11  :32;

            uint32 residenceTime_47_43  :5;
            uint32 sourcePort           :16;
            uint32 timestamp_10_0       :11;

            uint32 timestamp_42_11      :32;

            uint32 timestamp_63_43      :21;
            uint32 valid                :1;
            uint32 rsv0                 :10;

        }event;

        struct
        {
            uint32 infoType : 1;
            uint32 channelId : 8;
            uint32 latencyThrdCnt0_22_0 :23;

            uint32 latencyThrdCnt0_31_23:9;
            uint32 latencyThrdCnt1_22_0 :23;

            uint32 latencyThrdCnt1_31_23:9;
            uint32 latencyThrdCnt2_22_0 :23;

            uint32 latencyThrdCnt2_31_23:9;
            uint32 latencyThrdCnt3_22_0 :23;

            uint32 latencyThrdCnt3_31_23:9;
            uint32 latencyThrdCnt4_22_0 :23;

            uint32 latencyThrdCnt4_31_23:9;
            uint32 latencyThrdCnt5_22_0 :23;

            uint32 latencyThrdCnt5_31_23:9;
            uint32 latencyThrdCnt6_22_0 :23;

            uint32 latencyThrdCnt6_31_23:9;
            uint32 latencyThrdCnt7_22_0 :23;

            uint32 latencyThrdCnt7_31_23:9;
            uint32 rsv1                 :23;
        }mon; 
    }u;
};

struct temp_irm_resrc_mon_info_tmm_s
{
    /*word0~3*/
    union
    {
        struct
        {
            uint32 monInfoType            : 3;
            uint32 pktBufCnt              : 17;
            uint32 channelId              : 7;
            uint32 rsv1                   : 5;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g1;
        struct
        {
            uint32 monInfoType            : 3;
            uint32 scCnt_0_16_0           : 17;
            uint32 scCnt_1_11_0           : 12;

            uint32 scCnt_1_16_12          : 5;
            uint32 scCnt_2_16_0           : 17;
            uint32 scCnt_3_9_0            : 10;

            uint32 scCnt_3_16_10          : 7;
            uint32 rsv1                   : 25;
        }g2;

        struct
        {
            uint32 monInfoType            : 3;
            uint32 totalCnt               : 17;
            uint32 criticalCnt_11_0       : 12;

            uint32 criticalCnt_16_12      : 5;
            uint32 c2cCnt                 : 17;
            uint32 rsv1                   : 10;

            uint32 rsv2                   : 32;
        }g3;

        struct
        {
            uint32 monInfoType            : 3;
            uint32 portTcCnt              : 17;
            uint32 portTcCntValid         : 1;
            uint32 mappedTc               : 3;
            uint32 rsv1                   : 8;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g4;

        struct
        {
            uint32 monInfoType            : 3;
            uint32 mappedSc               : 2;
            uint32 pktBufCnt              : 17;
            uint32 channelId              : 7;
            uint32 rsv1                   : 3;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g5;

        struct
        {
            uint32 monInfoType            : 3;
            uint32 portScCnt              : 17;
            uint32 portScCntValid         : 1;
            uint32 mappedSc               : 2;
            uint32 rsv1                   : 9;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g6;
    }u;
};

struct ms_irm_mon_tmm_s
{
    uint32 infoType                       : 1;
    uint32 u_30_0                         : 31;

    uint32 u_62_31                        : 32;

    uint32 u_94_63                        : 32;
};

struct temp_erm_resrc_mon_info_tmm_s
{
    /*word0~3*/
    union
    {
        struct
        {
            uint32 monInfoType            : 3;
            uint32 pktBufCnt              : 17;
            uint32 ucastBufCnt_11_0       : 12;

            uint32 ucastBufCnt_16_12      : 5;
            uint32 mcastBufCnt            : 17;
            uint32 channelId              : 8;
            uint32 rsv1                   : 2;

            uint32 rsv2                   : 32;

        }g1;
        struct
        {
            uint32 monInfoType            : 3;
            uint32 scCnt_0_16_0           : 17;
            uint32 scCnt_1_11_0           : 12;

            uint32 scCnt_1_16_12          : 5;
            uint32 scCnt_2_16_0           : 17;
            uint32 scCnt_3_9_0            : 10;

            uint32 scCnt_3_16_10          : 7;
            uint32 rsv1                   : 25;
        }g2;

        struct
        {
            uint32 monInfoType            : 3;
            uint32 totalCnt               : 17;
            uint32 spanCnt_11_0           : 12;

            uint32 spanCnt_16_12          : 5;
            uint32 criticalCnt            : 17;
            uint32 criticalCnt_9_0        : 10;

            uint32 criticalCnt_16_10      : 7;
            uint32 rsv1                   : 25;
        }g3;

        struct
        {
            uint32 monInfoType            : 3;
            uint32 queueCnt               : 17;
            uint32 queueCntValid          : 1;
            uint32 queueOffset            : 5;
            uint32 detailedType           : 2;
            uint32 rsv1                   : 4;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g4;

        struct
        {
            uint32 monInfoType            : 3;
            uint32 pktBufCnt              : 17;
            uint32 channelId              : 8;
            uint32 sc                     : 2;
            uint32 rsv1                   : 2;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g5;

        struct
        {
            uint32 monInfoType            : 3;
            uint32 queueId                : 14;
            uint32 queueCnt_14_0          : 15;

            uint32 queueCnt_16_15         : 2;
            uint32 rsv1                   : 30;

            uint32 rsv2                   : 32;
        }g6;

        struct
        {
            uint32 monInfoType            : 3;
            uint32 pktBufCnt              : 17;
            uint32 channelId              : 8;
            uint32 rsv1                   : 4;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g7;
    }u;
};

struct temp_erm_mb_mon_info_tmm_s
{
    union
    {
        struct
        {
            uint32 ucastBufCnt            : 17;
            uint32 mcastBufCnt_14_0       : 15;
/*
            uint32 mcastBufCnt_16_15      : 2;
            uint32 sc                     : 2;
            uint32 channelId              : 8;
            uint32 microburstType         : 3;
            uint32 rsv1                   : 17;
*/
        }channel;
        struct
        {
            uint32 totalCnt               : 17;
            uint32 rsv1                   : 15;
        }total;
        struct
        {
            uint32 scCnt                  : 17;
            uint32 id                     : 2;
            uint32 rsv1                   : 13;
        }sc;
        struct
        {
            uint32 criticalCnt            : 17;
            uint32 rsv1                   : 15;
        }critical;
        struct
        {
            uint32 c2cCnt                 : 17;
            uint32 rsv1                   : 15;
        }c2c;
    }u;

    uint32 u_data                         : 12;
    uint32 microburstType                 : 3;
    uint32 rsv                            : 17;
};

struct ms_erm_mon_tmm_s
{
    uint32 infoType               :1;
    uint32 u_30_0                 :31;

    uint32 u_62_31                :32;

    uint32 u_94_63                :32;

    uint32 u_126_95               :32;
};

struct sys_learning_aging_decode_tmm_s
{
    uint32 is_learning_dma          : 1;
    uint32 hash_result_index        : 21;
    uint32 is_learning              : 1;
    uint32 uShare_0_8               : 9;

    uint32 uShare_9_40              : 32;

    uint32 uShare_41_51             : 11;
    uint32 macsa_0_20               : 21;

    uint32 macsa_21_47              : 27;
    uint32 vsi_id_0_4               : 5;

    uint32 vsi_id_5_14              : 10;
    uint32 is_global_src_port       : 1;
    uint32 learning_source_port     : 16;
    uint32 fast_learning_en         : 1;
    uint32 fibhost0hashconflict     : 1;
    uint32 rsv_0                    : 3;
};
struct sys_dsmac_decode_tmm_s
{
    uint32  isRouterMac : 1;
    uint32  u1__0_30 : 31;
    
    uint32  u1__31_44 : 14;
    uint32  u2_ : 16;
    uint32  u3__0_1 : 2;
    
    uint32  u3__2_20 : 19;
    uint32  srcDiscard : 1;
    uint32  isConversation : 1;
    uint32  conversationCheckEn : 1;
    uint32  u1Type : 2;
    uint32  sourcePortCheckEn : 1;
    uint32  learnSource : 1;
    uint32  srcMismatchLearnEn : 1;
    uint32  srcMismatchDiscard : 1;
    uint32  stormCtlEn : 1;
    uint32  protocolExceptionEn : 1;
    uint32  localAddress : 1;
    uint32  fastLearningEn : 1;
    
    uint32  macSaExceptionEn : 1;
    uint32  isStatic : 1;
    uint32  macLimitEn : 1;
    uint32  u3Type : 1;
    uint32  logicDestPortValid : 1;
    uint32  ponSelect : 1;
    uint32  macUnKnown : 1;
    uint32  userDefine : 1;
    uint32  rsv : 24;

};
struct ds_fib_hash_cpu_req_tmm_s
{
    /* word 0 */
    uint32 ipv6_da_high_0_31      : 32;
    /* word 1 */
    uint32 ipv6_da_high_32_63     : 32;
    /* word 2 */
    uint32 ipv6_da_high_64_71     : 8;
    uint32 static_count_en        : 1;
    uint32 key_mac_0_22           : 23;
    /* word 3 */
    uint32 key_mac_23_47          : 25;
    uint32 key_ad_index_0_6       : 7;
    /* word 4 */
    uint32 key_ad_index_7_17      : 11;
    uint32 key_vrf_id             : 15;
    uint32 key_index_0_5          : 6;
    /* words 5 */
    uint32 key_index_6_21         : 16;
    uint32 key_del_type           : 2;
    uint32 key_port_del_mode      : 1;
    uint32 req_port_0_12          : 13;
    /* word 6 */
    uint32 req_port_13_15         : 3;
    uint32 req_type               : 5;
    uint32 pon_rule_type          : 1;
    uint32 write_data_0_22        : 23;
    /* word 7 */
    uint32 write_data_23_54       : 32;
    /* word 8 */
    uint32 write_data_55_86       : 32;
    /* words 9 */
    uint32 write_data_87_103      : 17;
    uint32 req_valid              : 1;
    uint32 rsv                    : 14;
};
struct ds_fib_hash_cpu_res_tmm_s
{
    /* word 0 */
    uint32 ds_idx                 : 18;
    uint32 lu_idx_0_13            : 14;
    /* word 1 */
    uint32 lu_idx_14_21           : 8;
    uint32 key_hit                : 1;
    uint32 conflict_valid         : 1;
    uint32 pending                : 1;
    uint32 conflict               : 1;
    uint32 key_done               : 1;
    uint32 read_data_0_18         : 19;
    /* word 2 */
    uint32 read_data_19_50        : 32;
    /* word 3 */
    uint32 read_data_51_82        : 32;
    /* word 4 */
    uint32 read_data_83_114       : 32;
    /* word 5 */
    uint32 read_data_115_146      : 32;
    /* word 6 */
    uint32 read_data_147_173      : 27;
    uint32 rsv                    : 5;
};
/* FibHashCpuLookupReq */
struct ds_fib_cpu_look_req_tmm_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 data_64_86          : 23;
    uint32 rsv0                : 9;
    /* word 3 */
    uint32 data_87_118         : 32;
    /* word 4 */
    uint32 data_119_150        : 32;
    /* word 5 */
    uint32 data_151_173        : 23;
    uint32 rsv1                : 9;
    /* word 6 */
    uint32 data_174_205        : 32;
    /* word 7 */
    uint32 data_206_237        : 32;
    /* word 8 */
    uint32 data_238_260        : 23;
    uint32 rsv2                : 9;
    /* word 9 */
    uint32 data_261_292        : 32;
    /* word 10 */
    uint32 data_293_324        : 32;
    /* word 11 */
    uint32 data_325_347        : 23;
    uint32 rsv3                : 9;
    /* word 12 */
    uint32 hash_key_type       : 4; 
    uint32 length_mode         : 2;
    uint32 req_interface       : 2;
    uint32 req_valid           : 1;
    uint32 rsv4                : 23;
};
/* FibHashCpuLookupResult */
struct ds_fib_cpu_look_res_tmm_s
{
    uint32 result_idx          : 21;
    uint32 lookup_result_valid : 1;  
    uint32 conflict            : 1;
    uint32 result_valid        : 1;
    uint32 lookup_result_done  : 1;
    uint32 rsv                 : 7;
};
/* UserIdCpuLookupReq */
struct ds_scl_cpu_look_req_tmm_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 data_64_84          : 21;
    uint32 rsv0                : 11;
    /* word 3 */
    uint32 data_85_116         : 32;
    /* word 4 */
    uint32 data_117_148        : 32;
    /* word 5 */
    uint32 data_149_169        : 21;
    uint32 rsv1                : 11;
    /* word 6 */
    uint32 data_170_201        : 32;
    /* word 7 */
    uint32 data_202_233        : 32;
    /* word 8 */
    uint32 data_234_254        : 21;
    uint32 rsv2                : 11;
    /* word 9 */
    uint32 data_255_286        : 32;
    /* word 10 */
    uint32 data_287_318        : 32;
    /* word 11 */
    uint32 data_319_339        : 21;
    uint32 rsv3                : 11;
    /* word 12 */
    uint32 length_mode         : 2;
    uint32 req_interface       : 1;
    uint32 req_valid           : 1;
    uint32 rsv4                : 28;
};
/* UserIdCpuLookupResult */
struct ds_scl_cpu_look_res_tmm_s
{
    uint32 result_idx          : 21;
    uint32 result_valid        : 1;
    uint32 conflict            : 1;
    uint32 lookup_req_done     : 1;
    uint32 free_valid          : 1;
    uint32 is_tcam_hit         : 1;
    uint32 rsv                 : 6;
};
/* EgressSclCpuLookupReq */
struct ds_escl_cpu_look_req_tmm_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 data_64_84          : 21;
    uint32 rsv0                : 11;
    /* word 3 */
    uint32 req_valid           : 1;
    uint32 rsv1                : 31;
};
/* EgressSclCpuLookupResult */
struct ds_escl_cpu_look_res_tmm_s
{
    /* word 0 */
    uint32 result_idx1         : 16;
    uint32 result_idx0         : 16;
    /* word 1 */
    uint32 result_valid1       : 1;
    uint32 result_valid0       : 1;
    uint32 free_valid1         : 1;
    uint32 free_valid0         : 1;
    uint32 conflict1           : 1;
    uint32 conflict0           : 1;
    uint32 is_tcam_hit1        : 1;
    uint32 is_tcam_hit0        : 1;
    uint32 lookup_result_done  : 1;
    uint32 rsv                 : 23;
};

struct sys_fdbkey_encode_tmm_s
{
    uint32  valid: 1;
    uint32  hashType: 3;
    uint32  dsAdIndex: 18;
    uint32  ponRuleType: 1;
    uint32  vsiId_0_8:9;
    
    uint32  vsiId_9_14:6;
    uint32  mappedMac_0_25:26;
    
    uint32  mappedMac_26_47:22;
    uint32  pending: 1;
    uint32  rsv: 9;
};

#if 0
struct sys_ds_ipv4_snake_tmm_s
{
    /* word0[0:31] */
    uint32 entry_type:3;

    uint32 entry0_ipaddr_0_28:29;
    /* word1[0:31] */
    uint32 entry0_ipaddr_29_31:3;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_masklen_0_5:6;


    uint32 entry1_ipaddr_0_4:5;
    /* word2[0:31] */
    uint32 entry1_ipaddr_5_27:23;
    uint32 rsv0:9;
    /* word3[0:31] */
    uint32 entry1_ipaddr_28_31:4;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_masklen_0_5:6;


    uint32 entry2_ipaddr_0_3:4;
    /* word4[0:31] */
    uint32 entry2_ipaddr_4_31:28;
    uint32 entry2_nexthop_0_3:4;
    /* word5[0:31] */
    uint32 entry2_nexthop_4_17:14;
    uint32 entry2_masklen_0_5:6;


    uint32 entry3_ipaddr_0_2:3;
    uint32 rsv1:9;
    /* word6[0:31] */
    uint32 entry3_ipaddr_3_31:29;
    uint32 entry3_nexthop_0_2:3;
    /* word7[0:31] */
    uint32 entry3_nexthop_3_17:15;
    uint32 entry3_masklen_0_5:6;


    uint32 entry4_ipaddr_0_10:11;
    /* word8[0:31] */
    uint32 entry4_ipaddr_11_31:21;
    uint32 entry4_nexthop_0_1:2;
    uint32 rsv2:9;
    /* word9[0:31] */
    uint32 entry4_nexthop_2_17:16;
    uint32 entry4_masklen_0_5:6;


    uint32 entry5_ipaddr_0_9:10;
    /* word10[0:31] */
    uint32 entry5_ipaddr_10_31:22;
    uint32 entry5_nexthop_0_9:10;
    /* word11[0:31] */
    uint32 entry5_nexthop_10_17:8;
    uint32 entry5_masklen_0_5:6;
    uint32 rsv3:18;
};
#endif

struct sys_ds_ipv4_ext_snake_tmm_s
{
    /* word0[0:31] */
    uint32 entry_type:3;

    uint32 entry0_ipaddr_0_28:29;
    /* word1[0:31] */
    uint32 entry0_ipaddr_29_31:3;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_masklen_0_5:6;
    uint32 entry0_bucketsel:1;

    uint32 entry1_ipaddr_0_3:4;
    /* word2[0:31] */
    uint32 entry1_ipaddr_4_26:23;

    uint32 rsv0:9;
    /* word3[0:31] */
    uint32 entry1_ipaddr_27_31:5;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_masklen_0_5:6;
    uint32 entry1_bucketsel:1;


    uint32 entry2_ipaddr_0_1:2;
    /* word4[0:31] */
    uint32 entry2_ipaddr_2_31:30;
    uint32 entry2_nexthop_0_1:2;
    /* word5[0:31] */
    uint32 entry2_nexthop_2_17:16;
    uint32 entry2_masklen_0_5:6;
    uint32 entry2_bucketsel:1;
    uint32 rsv1:9;


    /* word6[0:31] */
    uint32 entry3_ipaddr_0_31;
    /* word7[0:31] */
    uint32 entry3_nexthop_0_17:18;
    uint32 entry3_masklen_0_5:6;
    uint32 entry3_bucketsel:1;


    uint32 entry4_ipaddr_0_6:7;
    /* word8[0:31] */
    uint32 entry4_ipaddr_7_29:23;
    uint32 rsv2:9;
    /* word9[0:31] */
    uint32 entry4_ipaddr_30_31:2;
    uint32 entry4_nexthop_0_17:18;
    uint32 entry4_masklen_0_5:6;
    uint32 entry4_bucketsel:1;


    uint32 entry5_ipaddr_0_4:5;
    /* word10[0:31] */
    uint32 entry5_ipaddr_5_31:27;
    uint32 entry5_nexthop_0_4:5;
    /* word11[0:31] */
    uint32 entry5_nexthop_5_17:13;
    uint32 entry5_masklen_0_5:6;
    uint32 entry5_bucketsel:1;
    uint32 rsv3:12;
};

struct sys_ds_ipv6_64_snake_tmm_s
{
    /* word0[0:31] */
    uint32 entry_type:3;


    uint32 entry0_ipaddr0_0_28:29;
    /* word1[0:31] */
    uint32 entry0_ipaddr0_29_31:3;
    uint32 entry0_ipaddr1_0_28:29;
    /* word2[0:31] */
    uint32 entry0_ipaddr1_29_31:3;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_masklen_0_1:2;
    uint32 rsv0:9;
    /* word3[0:31] */
    uint32 entry0_masklen_2_7:6;

    
    uint32 entry1_ipaddr0_0_25:26;
    /* word4[0:31] */
    uint32 entry1_ipaddr0_26_31:6;
    uint32 entry1_ipaddr1_0_25:26;
    /* word5[0:31] */
    uint32 entry1_ipaddr1_26_31:6;
    uint32 entry1_nexthop_0_16:17;
    uint32 rsv1:9;
    /* word6[0:31] */
    uint32 entry1_nexthop_17_17:1;
    uint32 entry1_masklen_0_7:8;


    uint32 entry2_ipaddr0_0_22:23;
    /* word7[0:31] */
    uint32 entry2_ipaddr0_23_31:9;
    uint32 entry2_ipaddr1_0_22:23;
    /* word8[0:31] */
    uint32 entry2_ipaddr1_23_31:9;
    uint32 entry2_nexthop_0_13:14;
    uint32 rsv2:9;
    /* word9[0:31] */
    uint32 entry2_nexthop_14_17:4;
    uint32 entry2_masklen_0_7:8;
    uint32 rsv3:20;
    /* word10[0:31] */
    uint32 rsv4;
    /* word11[0:31] */
    uint32 rsv5;
};

struct sys_ds_ipv6_128_snake_tmm_s
{
    /* word0[0:31] */
    uint32 entry_type:3;


    uint32 entry0_ipaddr0_0_28:29;
    /* word1[0:31] */
    uint32 entry0_ipaddr0_29_31:3;
    uint32 entry0_ipaddr1_0_28:29;
    /* word2[0:31] */
    uint32 entry0_ipaddr1_29_31:3;
    uint32 entry0_ipaddr2_0_19:20;
    uint32 rsv0:9;
    /* word3[0:31] */
    uint32 entry0_ipaddr2_20_31:12;
    uint32 entry0_ipaddr3_0_19:20;
    /* word4[0:31] */
    uint32 entry0_ipaddr3_20_31:12;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_masklen_0_1:2;
    /* word5[0:31] */
    uint32 entry0_masklen_2_7:6;


    uint32 entry1_ipaddr0_0_16:17;
    uint32 rsv1:9;
    /* word6[0:31] */
    uint32 entry1_ipaddr0_17_31:15;
    uint32 entry1_ipaddr1_0_16:17;
    /* word7[0:31] */
    uint32 entry1_ipaddr1_17_31:15;
    uint32 entry1_ipaddr2_0_16:17;
    /* word8[0:31] */
    uint32 entry1_ipaddr2_17_31:15;
    uint32 entry1_ipaddr3_0_7:8;
    uint32 rsv2:9;
    /* word9[0:31] */
    uint32 entry1_ipaddr3_8_31:24;
    uint32 entry1_nexthop_0_7:8;
    /* word10[0:31] */
    uint32 entry1_nexthop_8_17:10;
    uint32 entry1_masklen_0_7:8;
    uint32 rsv3:14;
    /* word11[0:31] */
    uint32 rsv4;
};

#else
struct ds_desc_tmm_s
{
    /*word0*/
    uint32 cfg_size_20_11_0         : 12;
    uint32 data_rror                : 1;
    uint32 desc_error               : 1;
    uint32 error                    : 1;
    uint32 done                     : 1;
    uint32 pause                    : 1;
    uint32 intr_mask                : 1;
    uint32 data_struct              : 6;
    uint32 atomic                   : 2;
    uint32 u2_pkt_drop              : 1;
    uint32 u1_pkt_trunc_en          : 1;
    uint32 u1_pkt_trunc_pkt         : 1;
    uint32 u1_pkt_pkt_error         : 1;
    uint32 u1_pkt_eop               : 1;
    uint32 u1_pkt_sop               : 1;

    /*word1*/
    uint32 desc_rsv                 : 3;
    uint32 valid0                   : 1;
    uint32 real_size                : 20;
    uint32 cfg_size_20_19_12        : 8;

    /*word2*/
    uint32 mem_addr                 : 28;
    uint32 ts_shift                 : 4;

    /*word3*/
    uint32 ts_addr                  : 32;

    /*word4*/
    uint32 timestamp_64_31_0        : 32;

    /*word5*/
    uint32 timestamp_64_63_32       : 32;

    /*word6*/
    uint32 tcam_scan_addr0          : 32;

    /*word7*/
    uint32 valid                    : 1;
    uint32 u3_config_cfg_rsv        : 31;
};

struct ms_packet_header_tmm_s
{
        /*word9[31:0]*/
    uint32 is_int_share_fields_mode                                                                 : 1;
    uint32 replicated                                                                               : 1;
    uint32 bypass_ipe                                                                               : 1;
    uint32 packet_offset                                                                            : 8;
    uint32 dest_map                                                                                 : 19;
    uint32 prio_4_3_2                                                                               : 2;

        /*word8[31:0]*/
    uint32 prio_4_1_0                                                                               : 2;
    uint32 packet_type                                                                              : 3;
    uint32 src_stag_cos                                                                             : 3;
    uint32 header_hash                                                                              : 8;
    uint32 logic_port_type                                                                          : 1;
    uint32 source_port_16_15_1                                                                      : 15;

        /*word7[31:0]*/
    uint32 source_port_16_0_0                                                                       : 1;
    uint32 src_svlan_id                                                                             : 12;
    uint32 color                                                                                    : 2;
    uint32 next_hop_ptr_18_17_1                                                                     : 17;

    /*word6[31:0]*/
    uint32 next_hop_ptr_18_0_0                                                                      : 1;
    uint32 from_lag                                                                                 : 1;
    uint32 critical_packet                                                                          : 1;
    uint32 is_leaf                                                                                  : 1;
    uint32 src_stag_cfi                                                                             : 1;
    uint32 next_hop_ext                                                                             : 1;
    uint32 port_mac_sa_en                                                                           : 1;
    uint32 from_cpu_lm_up_disable                                                                   : 1;
    uint32 svlan_tag_operation_valid                                                                : 1;
    uint32 source_port_extender                                                                     : 1;
    uint32 from_fabric                                                                              : 1;
    uint32 bypass_ingress_edit                                                                      : 1;
    uint32 ds_nexthop_bypass_all                                                                    : 1;
    uint32 from_cpu_lm_down_disable                                                                 : 1;
    uint32 ingress_edit_en                                                                          : 1;
    uint32 outer_vlan_is_cvlan                                                                      : 1;
    uint32 from_cpu_or_oam                                                                          : 1;
    uint32 svlan_tpid_index                                                                         : 2;
    uint32 src_vlan_ptr_14_13_1                                                                     : 13;

        /*word5[31:0]*/
    uint32 src_vlan_ptr_14_0_0                                                                      : 1;
    uint32 mux_length_type                                                                          : 2;
    uint32 oam_tunnel_en                                                                            : 1;
    uint32 bridge_operation                                                                         : 1;
    uint32 mac_learning_en                                                                          : 1;
    uint32 is_debugged_pkt                                                                          : 1;
    uint32 stag_action                                                                              : 2;
    uint32 mac_known                                                                                : 1;
    uint32 oam_use_fid                                                                              : 1;
    uint32 fid                                                                                      : 15;
    uint32 logic_src_port_15_14_9                                                                   : 6;

        /*word4[31:0]*/
    uint32 logic_src_port_15_8_0                                                                    : 9;
    uint32 ttl                                                                                      : 8;
    uint32 operation_type                                                                           : 3;
    uint32 from_cpu                                                                                 : 1;
    uint32 local_phy_port                                                                           : 9;
    uint32 timestamp_36_5_31_30                                                                     : 2;


    /*word3[31:0]*/
    uint32 timestamp_36_5_29_0                                                                      : 30;
    uint32 u1_data                                                                                  : 2;


    /*word0-2[31:0]*/
    union 
    {
        struct
        {
            uint32 c2c_reserved_79_76_45                                                            : 32;

            uint32 c2c_reserved_79_44_13                                                            : 32;

            uint32 c2c_reserved_79_12_0                                                             : 13;
            uint32 neighbor_discover_packet                                                         : 1;
            uint32 sgmac_strip_header                                                               : 1;
            uint32 c2c_check_disable                                                                : 1;
            uint32 stacking_src_port                                                                : 16;
        }c2c;

        struct
        {
            uint32 dm_reserved_90_87_56                                                             : 32;

            uint32 dm_reserved_90_55_24                                                             : 32;

            uint32 dm_reserved_90_23_0                                                              : 24;
            uint32 dm_offset                                                                        : 8;
        }dmtx;

        struct
        {
            uint32 hmac_reserved_79_76_45                                                           : 32;

            uint32 hmac_reserved_79_44_13                                                           : 32;

            uint32 hmac_reserved_79_12_0                                                            : 13;
            uint32 hmac_offset                                                                      : 8;
            uint32 sha_key_index                                                                    : 10;
            uint32 hmac_check_fail                                                                  : 1;
        }hmac;

        struct
        {
            
            uint32 src_local_phy_port_9_7_0                                                         : 8;
            uint32 int_dest_port_load                                                               : 23;
            uint32 src_vlan_ptr_14_13_13                                                            : 1;

            uint32 src_vlan_ptr_14_12_0                                                             : 13;
            uint32 logic_dest_port                                                                  : 15;
            uint32 queue_depth_16_15_12                                                             : 4;

            uint32 queue_depth_16_11_0                                                              : 12;
            uint32 latency                                                                          : 20;

        }intdata;

        struct
        {
            uint32 tx_fcb                                                                           : 32;

            uint32 rx_fcb                                                                           : 32;

            uint32 rxtx_fcl                                                                         : 32;

        }lmtx;

        struct
        {
            uint32 cflex_fwd_sg_group_sel_3_1_0                                                     : 2;
            uint32 bypass_cflex_src_check                                                           : 1;
            uint32 port_isolate_type                                                                : 3;
            uint32 is_span_pkt                                                                      : 1;
            uint32 acl_stag_cos_valid                                                               : 1;
            uint32 acl_ctag_cos_valid                                                               : 1;
            uint32 acl_stag_cfi_valid                                                               : 1;
            uint32 acl_ctag_cfi_valid                                                               : 1;
            uint32 terminate_cid_hdr                                                                : 1;
            uint32 ecmp_hash                                                                        : 8;
            uint32 acl_dscp_valid                                                                   : 1;
            uint32 src_dscp_valid                                                                   : 1;
            uint32 src_dscp                                                                         : 6;
            uint32 cn_action                                                                        : 2;
            uint32 ctag_action                                                                      : 2;

            uint32 src_ctag_cos                                                                     : 3;
            uint32 srcCtagCfi                                                                       : 1;
            uint32 srcCtagOffsetType                                                                : 1;
            uint32 source_port_isolateId                                                            : 7;
            uint32 src_cvlan_id                                                                     : 12;
            uint32 cvlan_tag_operation_valid                                                        : 1;
            uint32 metadata_type                                                                    : 2;
            uint32 metadata_15_14_10                                                                : 5;

            uint32 metadata_15_9_0                                                                  : 10;
            uint32 i2e_src_cid_valid                                                                : 1;
            uint32 i2e_src_cid                                                                      : 8;
            uint32 pkt_with_cid_header                                                              : 1;
            uint32 src_cid_hdr_offset_type                                                          : 2;
            uint32 truncate_len_prof_id                                                             : 4;
            uint32 next_hop_save_en                                                                 : 1;
            uint32 mac_da_low_bits                                                                  : 4;
            uint32 bypass_phy_port_check                                                            : 1;

        }normal;

        struct
        {
            uint32 oam_reserved_4_1_0                                                               : 2;
            uint32 twamp_is_ack                                                                     : 1;
            uint32 twamp_ts_type                                                                    : 1;
            uint32 mip_en                                                                           : 1;
            uint32 microbfd_mac_da_valid                                                            : 1;
            uint32 rx_oam                                                                           : 1;
            uint32 mep_index                                                                        : 14;
            uint32 oam_type                                                                         : 4;
            uint32 link_oam                                                                         : 1;
            uint32 iloop_to_agg_or_remote_up_mep                                                    : 1;
            uint32 gal_exist                                                                        : 1;
            uint32 use_oam_ttl                                                                      : 1;
            uint32 is_up                                                                            : 1;
            uint32 dm_en                                                                            : 1;
            uint32 lm_received_packet                                                               : 1;

            uint32 rx_fcb                                                                           : 32;

            uint32 rxtx_fcl_h                                                                       : 24;
            uint32 rxtx_fcl_l_or_dm_offset                                                          : 8;

        }oam;

        struct
        {
            uint32 ptp_reserved_38_35_4                                                             : 32;

            uint32 ptp_reserved_38_3_0                                                              : 4;
            uint32 ptp_sequence_id                                                                  : 4;
            uint32 ptp_msg_type                                                                     : 2;
            uint32 ptp_transport_specific                                                           : 1;
            uint32 timestamp_61_37_25_24_4                                                          : 21;

            uint32 timestamp_61_37_25_3_0                                                           : 4;
            uint32 timestamp_4_0                                                                    : 5;
            uint32 is_l2_ptp                                                                        : 1;
            uint32 is_l4_ptp                                                                        : 1;
            uint32 ptp_capture_timestamp                                                            : 1;
            uint32 ptp_replace_timestamp                                                            : 1;
            uint32 ptp_apply_egress_asymmetry_delay                                                 : 1;
            uint32 ptp_update_residence_time                                                        : 1;
            uint32 ptp_offset                                                                       : 8;
            uint32 acl_dscp_valid                                                                   : 1;
            uint32 src_dscp_valid                                                                   : 1;
            uint32 src_dscp                                                                         : 6;
            uint32 is_cflex_update_residence_time                                                   : 1;
        }ptp;
    }u1;
};
struct ms_packet_header_tmm_tail_s
{
    /*word1[31:0]*/
    uint32 cpu_reserved:6;
    uint32 is_sniffing_packet:1;
    uint32 int_and_sr_shared:14;
    uint32 use_outer_service:1;
    uint32 bypass_macsec_proc:1;
    uint32 dest_is_lag:1;
    uint32 dest_port_16_15_8:8;

    /*word0[31:0]*/
    uint32 dest_port_16_7_0:8;
    uint32 que_map_type:3;
    uint32 dest_channel_id_valid_from_cpu:1;
    uint32 dest_slice_id_from_cpu:2;
    uint32 dest_channel_id_from_cpu:8;
    uint32 service_id:10;

};
struct ds_eth_mep_tmm_s 
{
    uint32  portId_0_6 : 7;
    uint32  ccmInterval : 3;
    uint32  maIndex : 13;
    uint32  isUp : 1;
    uint32  isRemote : 1;
    uint32  isBfd : 1;
    uint32  active : 1;
    uint32  ethOamP2PMode : 1;
    uint32  mepType : 4;

    uint32  seqNumEn : 1;
    uint32  cciEn : 1;
    uint32  enablePm : 1;
    uint32  apsBridgeEn : 1;
    uint32  maIdCheckDisable : 1;
    uint32  mepPrimaryVid : 12;
    uint32  mepId : 13;
    uint32  portId_7_8 : 2;

    uint32  ccmSeqNum_0_29 : 30;
    uint32  p2pUseUcDa : 1;
    uint32  shareMacEn : 1;

    uint32  apsSignalFailLocal_0_0 : 1;
    uint32  cciWhile : 3;
    uint32  autoGenEn : 1;
    uint32  portStatus : 2;
    uint32  rmepLastRdi : 1;
    uint32  presentRdi : 1;
    uint32  tpidType : 2;
    uint32  dUnexpMep : 1;
    uint32  dMismerge : 1;
    uint32  dMegLvl : 1;
    uint32  dUnexpMepTimer : 4;
    uint32  dMismergeTimer : 4;
    uint32  dMegLvlTimer : 4;
    uint32  autoGenPktPtr : 4;
    uint32  ccmSeqNum_30_31 : 2;

    uint32  u1__0_5 : 6;
    uint32  ccmStatEn : 1;
    uint32  unknownCcmNum : 3;
    uint32  learnEn : 1;
    uint32  destMap : 19;
    uint32  apsSignalFailLocal_1_2 : 2;

    uint32  rsv0 : 12;
    uint32  twampIndex : 9;
    uint32  protectionPath : 1;
    uint32  u1__6_15 : 10;
};

struct ds_eth_rmep_tmm_s
{

    uint32  apsSignalFailRemote_0_3 : 4;
    uint32  isCsfEn : 1;
    uint32  macStatusChange : 1;
    uint32  seqNumEn : 1;
    uint32  rmepMacMismatch : 1;
    uint32  u3_ : 14;
    uint32  protectionPath : 1;
    uint32  isUp : 1;
    uint32  isRemote : 1;
    uint32  isBfd : 1;
    uint32  active : 1;
    uint32  ethOamP2PMode : 1;
    uint32  mepType : 4;

    uint32  rmepMacSa_0_30 : 31;
    uint32  apsSignalFailRemote_4_4 : 1;

    uint32  u1__0_14 : 15;
    uint32  rmepMacSa_31_47 : 17;

    uint32  dUnexpPeriodTimer_0_2 : 3;
    uint32  dLoc : 1;
    uint32  expCcmNum : 8;
    uint32  cntShiftWhile : 3;
    uint32  u1__15_31 : 17;

    uint32  apsGroupId : 12;
    uint32  rmepLastIntfStatus : 3;
    uint32  firstPktRx : 1;
    uint32  rmepLastPortStatus : 2;
    uint32  seqNumFailCounter : 6;
    uint32  macAddrUpdateDisable : 1;
    uint32  rmepWhile : 4;
    uint32  rmepLastRdi : 1;
    uint32  dUnexpPeriod : 1;
    uint32  dUnexpPeriodTimer_3_3 : 1;

    uint32  rsv0 : 27;
    uint32  autoGenPktPtrHi : 1;
    uint32  suppressLoc : 1;
    uint32  donotCareFirstPktRx : 1;
    uint32  isDmmUseUcDa : 1;
    uint32  fastApsEn : 1;
};

struct ds_bfd_mep_tmm_s
{
    uint32  microBFD : 1;
    uint32  localDiag : 5;
    uint32  cciEn : 1;
    uint32  ccmInterval : 3;
    uint32  maIndex : 13;
    uint32  isUp : 1;
    uint32  isRemote : 1;
    uint32  isBfd : 1;
    uint32  active : 1;
    uint32  ethOamP2PMode : 1;
    uint32  mepType : 4;

    uint32  apsGroupId : 6;
    uint32  helloWhile : 10;
    uint32  u2_ : 16;

    uint32  u1_ : 32;

    uint32  desiredMinTxInterval_0_0 : 1;
    uint32  actualMinTxInterval : 10;
    uint32  ipDaL : 20;
    uint32  ccTxMode : 1;

    uint32  rxCsfWhile_0_1 : 2;
    uint32  destMap : 19;
    uint32  localStat : 2;
    uint32  desiredMinTxInterval_1_9 : 9;

    uint32  rsv : 12;
    uint32  twampIndex : 9;
    uint32  rxCsfWhile_2_12 : 11;
};

struct ds_bfd_rmep_tmm_s
{
    uint32  apsSignalFailRemote_0_0 : 1;
    uint32  isCsfTxEn : 1;
    uint32  actualRxInterval : 10;
    uint32  requiredMinRxInterval : 10;
    uint32  protectionPath : 1;
    uint32  isUp : 1;
    uint32  isRemote : 1;
    uint32  isBfd : 1;
    uint32  active : 1;
    uint32  ethOamP2PMode : 1;
    uint32  mepType : 4;

    uint32  u1__0_30 : 31;
    uint32  apsSignalFailRemote_1_1 : 1;

    uint32  defectMult : 4;
    uint32  defectWhile : 14;
    uint32  localDefectMult : 4;
    uint32  fastApsEn : 1;
    uint32  fbit : 1;
    uint32  discChkEn : 1;
    uint32  remoteDiag : 5;
    uint32  apsBridgeEn : 1;
    uint32  u1__31_31 : 1;

    uint32  u2__0_30 : 31;
    uint32  firstPktRx : 1;

    uint32  ipBfdTtl_0_6 : 7;
    uint32  dLoc : 1;
    uint32  echoRxEn : 1;
    uint32  ipDaH : 12;
    uint32  slowTxTimerCfg : 2;
    uint32  isMultiHop : 1;
    uint32  achChanType : 3;
    uint32  remoteStat : 2;
    uint32  isCsfEn : 1;
    uint32  isCvEn : 1;
    uint32  u2__31_31 : 1;

    uint32  rsv0 : 12;
    uint32  headPbitCnt : 3;
    uint32  isHeadPoll : 1;
    uint32  unicastRcvd : 1;
    uint32  silentTail : 1;
    uint32  timeNegDone : 1;
    uint32  donotCareFirstPktRx : 1;
    uint32  remoteReqMinRxIntIsZero : 1;
    uint32  apsGroupId : 6;
    uint32  ccTxMode : 1;
    uint32  pbit : 1;
    uint32  timeNegotiation : 1;
    uint32  learnEn : 1;
    uint32  ipBfdTtl_7_7 : 1;
};

struct sys_ipfix_l2_hashkey_decode_s
{
    uint32  globalPort : 17;
    uint32  flowFieldSel : 4;
    uint32  ipfixCfgProfileId : 8;
    uint32  hashKeyType0 : 3;

    uint32  macDa_0_31 : 32;

    uint32  macSa_0_15 : 16;
    uint32  macDa_32_47 : 16;

    uint32  rsv0 : 8;
    uint32  macSa_16_39 : 24;

    uint32  cvtagCos : 3;
    uint32  cvtagCfi : 1;
    uint32  svlanIdValid : 1;
    uint32  svtagCos : 3;
    uint32  svlanId : 12;
    uint32  svtagCfi : 1;
    uint32  macSa_40_47 : 8;
    uint32  hashKeyType1 : 3;

    uint32  layer2Type : 3;
    uint32  etherType : 16;
    uint32  cvlanIdValid : 1;
    uint32  cvlanId : 12;

    uint32  srcCategoryId : 16;
    uint32  destCategoryId : 16;

    uint32  rsv1 : 15;
    uint32  vsiId : 15;
    uint32  srcCategoryIdClassfied : 1;
    uint32  destCategoryIdClassfied : 1;

};

struct sys_ipfix_ipv4_hashkey_decode_s
{
    uint32  globalPort : 17;
    uint32  flowFieldSel : 4;
    uint32  ipfixCfgProfileId : 8;
    uint32  hashKeyType0 : 3;

    uint32  uL4__0_15 : 16;
    uint32  uShareField_ : 16;

    uint32  ipDa_0_15 : 16;
    uint32  uL4__16_31 : 16;

    uint32  rsv0 : 8;
    uint32  ipSa_0_7 : 8;
    uint32  ipDa_16_31 : 16;

    uint32  layer3HeaderProtocol_0_4 : 5;
    uint32  ipSa_8_31 : 24;
    uint32  hashKeyType1 : 3;

    uint32  destCategoryId_0_3 : 4;
    uint32  vsiId : 15;
    uint32  fragInfo : 2;
    uint32  tcpFlags : 8;
    uint32  layer3HeaderProtocol_5_7 : 3;

    uint32  ecn_0_0 : 1;
    uint32  isVxlan : 1;
    uint32  srcCategoryIdClassfied : 1;
    uint32  srcCategoryId : 16;
    uint32  destCategoryIdClassfied : 1;
    uint32  destCategoryId_4_15 : 12;

    uint32  rsv1 : 17;
    uint32  ttl : 8;
    uint32  dscp : 6;
    uint32  ecn_1_1 : 1;
};   
struct sys_ipfix_ipv6_hashkey_decode_s
{
    uint32  globalPort : 17;
    uint32  flowFieldSel : 4;
    uint32  ipfixCfgProfileId : 8;
    uint32  hashKeyType0 : 3;
   
    uint32  uL4_ : 32;
    
    uint32  srcCategoryId_0_14 : 15;
    uint32  destCategoryIdClassfied : 1;
    uint32  destCategoryId : 16;

    uint32  rsv0 : 8;
    uint32  mergeData_0_21 : 22;
    uint32  srcCategoryIdClassfied : 1;
    uint32  srcCategoryId_15_15 : 1;
    
    uint32  ipv6FlowLabel_0_8 : 9;
    uint32  tcpFlags : 8;
    uint32  mergeDataType : 2;
    uint32  mergeData_22_31 : 10;
    uint32  hashKeyType1 : 3;
    
    uint32  ipDa_0_8 : 9;
    uint32  fragInfo : 2;
    uint32  ecn : 2;
    uint32  ttl : 8;
    uint32  ipv6FlowLabel_9_19 : 11;

    uint32  ipDa_9_40 : 32;
    
    uint32  rsv1 : 8;
    uint32  ipDa_41_64 : 24;
    
    uint32  ipDa_65_93 : 29;
    uint32  hashKeyType2 : 3;
    
    uint32  ipDa_94_125 : 32;
    
    uint32  ipSa_0_29 : 30;
    uint32  ipDa_126_127 : 2;

    uint32  rsv3 : 8;
    uint32  ipSa_30_53 : 24;

    uint32  ipSa_54_82 : 29;
    uint32  hashKeyType3 : 3;
    
    uint32  ipSa_83_114 : 32;
        
    uint32  vsiId_0_4 : 5;
    uint32  dscp : 6;
    uint32  layer3HeaderProtocol : 8;
    uint32  ipSa_115_127 : 13;

    uint32  rsv4 : 20;
    uint32  isMergeKey : 1;
    uint32  isVxlan : 1;
    uint32  vsiId_5_14 : 10;
};
struct sys_ipfix_l2l3_hashkey_decode_s
{
    uint32  globalPort : 17;
    uint32  flowFieldSel : 4;
    uint32  ipfixCfgProfileId : 8;
    uint32  hashKeyType0 : 3;

    uint32  uL4__0_31 : 32;

    uint32  uL3__0_23 : 24;
    uint32  uL4__32_39 : 8;

    uint32  rsv0 : 8;
    uint32  uL3__24_47 : 24;

    uint32  uL3__48_76 : 29;
    uint32  hashKeyType1 : 3;

    uint32  mergeData_0_8 : 9;
    uint32  uL3__77_99 : 23;

    uint32  destCategoryId_0_6 : 7;
    uint32  mergeDataType : 2;
    uint32  mergeData_9_31 : 23;

    uint32  rsv1 : 8;
    uint32  srcCategoryId_0_14 : 15;
    uint32  destCategoryId_7_15 : 9;

    uint32  macDa_0_25 : 26;
    uint32  srcCategoryIdClassfied : 1;
    uint32  destCategoryIdClassfied : 1;
    uint32  srcCategoryId_15_15 : 1;
    uint32  hashKeyType2 : 3;

    uint32  macSa_0_9 : 10;
    uint32  macDa_26_47 : 22;

    uint32  macSa_10_41 : 32;

    uint32  rsv2 : 8;
    uint32  cvtagCfi : 1;
    uint32  svlanIdValid : 1;
    uint32  svtagCos : 3;
    uint32  svlanId : 12;
    uint32  svtagCfi : 1;
    uint32  macSa_42_47 : 6;

    uint32  vrfId_0_12 : 13;
    uint32  cvlanIdValid : 1;
    uint32  cvtagCos : 3;
    uint32  cvlanId : 12;
    uint32  hashKeyType3 : 3;

    uint32  etherType_0_7 : 8;
    uint32  layer3HeaderProtocol : 8;
    uint32  vsiId : 15;
    uint32  vrfId_13_13 : 1;

    uint32  rsv3 : 22;
    uint32  isMergeKey : 1;
    uint32  isVxlan : 1;
    uint32  etherType_8_15 : 8;

    uint32  rsv4 : 32;

};

struct sys_ipfix_mpls_hashkey_decode_s
{
    uint32  globalPort : 17;
    uint32  flowFieldSel : 4;
    uint32  ipfixCfgProfileId : 8;
    uint32  hashKeyType0 : 3;

    uint32  mplsTtl0 : 8;
    uint32  mplsSbit0 : 1;
    uint32  mplsExp0 : 3;
    uint32  mplsLabel0 : 20;

    uint32  mplsTtl1 : 8;
    uint32  mplsSbit1 : 1;
    uint32  mplsExp1 : 3;
    uint32  mplsLabel1 : 20;

    uint32  rsv0 : 8;
    uint32  mplsSbit2 : 1;
    uint32  mplsExp2 : 3;
    uint32  mplsLabel2 : 20;

    uint32  metadata_0_5 : 6;
    uint32  vsiId : 15;
    uint32  mplsTtl2 : 8;
    uint32  hashKeyType1 : 3;

    uint32  rsv1 : 20;
    uint32  labelNum : 4;
    uint32  metadata_6_13 : 8;

    uint32  rsv2 : 32;

    uint32  rsv3 : 32;
};

struct sys_ipfix_ipv4_short_hashkey_decode_s
{
    uint32  uL3__0_15:16;
    uint32  isIp: 1;
    uint32  flowFieldSel: 4;
    uint32  ipfixCfgProfileId: 8;
    uint32  hashKeyType: 3;

    uint32  uL3__16_47:32;

    uint32  uL3__48_79:32;

    uint32  rsv0: 8;
    uint32  uL3__80_103:24;

};

struct sys_ipfix_ipv6_short_hashkey_decode_s
{
    uint32  l4SourcePort_0_0 : 1;
    uint32  l4DestPort : 16;
    uint32  flowFieldSel : 4;
    uint32  ipfixCfgProfileId : 8;
    uint32  hashKeyType0 : 3;

    uint32  ipDaPrefix_0_8 : 9;
    uint32  layer3HeaderProtocol : 8;
    uint32  l4SourcePort_1_15 : 15;

    uint32  ipDaPrefix_9_40 : 32;

    uint32  rsv0 : 8;
    uint32  ipSaPrefix_0_0 : 1;
    uint32  ipDaPrefix_41_63 : 23;

    uint32  ipSaPrefix_1_29 : 29;
    uint32  hashKeyType1 : 3;

    uint32  ipSaPrefix_30_61 : 32;

    uint32  rsv1 : 30;
    uint32  ipSaPrefix_62_63 : 2;

    uint32  rsv2 : 32;

};


struct sys_ipfix_half_record0_decode_s
{
    uint32  packetCount_0_22:23;
    uint32  flowChangeCnt: 4;
    uint32  exportReason: 4;
    uint32  valid: 1;

    uint32  byteCount_0_28:29;
    uint32  packetCount_23_25:3;

    uint32  uDiscardInfo__0_28:29;
    uint32  byteCount_29_31:3;

    uint32  rsv0: 8;
    uint32  u1Type: 1;
    uint32  mirrorPktCnt: 8;
    uint32  terminateFlowMirror: 1;
    uint32  isStaticEntry: 1;
    uint32  tcpFlagsStatus: 8;
    uint32  expired: 1;
    uint32  uDiscardInfoType: 1;
    uint32  uDiscardInfo__29_31:3;

};

struct sys_ipfix_half_record1_decode_s
{
    uint32  packetCount_0_22:23;
    uint32  flowChangeCnt: 4;
    uint32  exportReason: 4;
    uint32  valid: 1;

    uint32  byteCount_0_28:29;
    uint32  packetCount_23_25:3;

    uint32  uDiscardInfo__0_28:29;
    uint32  byteCount_29_31:3;

    uint32  rsv0: 28;
    uint32  uDiscardInfoType: 1;
    uint32  uDiscardInfo__29_31:3;

};

struct sys_ipfix_full_record0_decode_s
{
    uint32  packetCount_0_22:23;
    uint32  flowChangeCnt: 4;
    uint32  exportReason: 4;
    uint32  valid: 1;

    uint32  byteCount_0_28:29;
    uint32  packetCount_23_25:3;

    uint32  uDiscardInfo__0_28:29;
    uint32  byteCount_29_31:3;

    uint32  rsv0: 8;
    uint32  u1Type: 1;
    uint32  mirrorPktCnt: 8;
    uint32  terminateFlowMirror: 1;
    uint32  isStaticEntry: 1;
    uint32  tcpFlagsStatus: 8;
    uint32  expired: 1;
    uint32  uDiscardInfoType: 1;
    uint32  uDiscardInfo__29_31:3;

    uint32  firstTs_0_9:10;
    uint32  lastTs: 22;

    uint32  minTtl_0_3:4;
    uint32  maxTtl: 8;
    uint32  lastTtl: 8;
    uint32  firstTs_10_21:12;

    uint32  u1__0_7:8;
    uint32  uDestinationInfo_: 16;
    uint32  destinationType: 4;
    uint32  minTtl_4_7:4;

    uint32  rsv1: 8;
    uint32  u1__8_31:24;

};

struct sys_ipfix_full_record1_decode_s
{
    uint32  packetCount_0_22:23;
    uint32  flowChangeCnt: 4;
    uint32  exportReason: 4;
    uint32  valid: 1;

    uint32  byteCount_0_28:29;
    uint32  packetCount_23_25:3;

    uint32  uDiscardInfo__0_28:29;
    uint32  byteCount_29_31:3;

    uint32  rsv0: 14;
    uint32  avgJitter_0_13:14;
    uint32  uDiscardInfoType: 1;
    uint32  uDiscardInfo__29_31:3;

    uint32  lastPktLatency_0_13:14;
    uint32  maxJitter: 16;
    uint32  avgJitter_14_15:2;

    uint32  avgLatency_0_21:22;
    uint32  lastPktLatency_14_23:10;

    uint32  minLatency_0_5:6;
    uint32  maxLatency: 24;
    uint32  avgLatency_22_23:2;

    uint32  rsv1: 14;
    uint32  minLatency_6_23:18;
};

typedef struct
{
    uint32 packetByte_1_0:2;
    uint32 packetCount_29_0:30;
    uint32 packetByte_33_2;
    uint32 sdk_rsv:28;
    uint32 packetByte_37_34:4;
}DsStats_tmm_s;

typedef struct
{
    uint32 sdk_rsv1:2;
    uint32 packetCountDrop_29_0:30;
    uint32 sdk_rsv2:2;
    uint32 packetCountEnq_29_0:30;
}DsStatsQueue_tmm_s;

struct cpu_info_tmm_s
{
    /*word0[31:0]*/
    uint32  infoSource          : 8;
    uint32  infoSubType         : 8;
    uint32  infoType            : 8;
    uint32  infoSize            : 8;

    /*word1[31:0]*/
    uint32  timestamp_31_0      : 32;

    /*word2[31:0]*/
    uint32  timestamp_63_32     : 32;

};

struct ms_efd_mon_tmm_s
{
    /*word0[31:0]*/
    uint32  rsv             : 19;
    uint32  efdMonPtr       : 13;
};

struct ms_latency_mon_tmm_s
{
    union
    {
        struct
        {
            uint32 residenceTime_10_0   :11;
            uint32 region               :4;
            uint32 localPhyPort         :8;
            uint32 channelId            :8;
            uint32 infoType             :1;

            uint32 residenceTime_42_11  :32;

            uint32 timestamp_10_0       :11;
            uint32 sourcePort           :16;
            uint32 residenceTime_47_43  :5;

            uint32 timestamp_42_11      :32;

            uint32 rsv0                 :10;
            uint32 valid                :1;
            uint32 timestamp_63_43      :21;

        }event;

        struct
        {
            uint32 latencyThrdCnt0_22_0 :23;
            uint32 channelId : 8;
            uint32 infoType : 1;

            uint32 latencyThrdCnt1_22_0 :23;
            uint32 latencyThrdCnt0_31_23:9;

            uint32 latencyThrdCnt2_22_0 :23;
            uint32 latencyThrdCnt1_31_23:9;

            uint32 latencyThrdCnt3_22_0 :23;
            uint32 latencyThrdCnt2_31_23:9;

            uint32 latencyThrdCnt4_22_0 :23;
            uint32 latencyThrdCnt3_31_23:9;

            uint32 latencyThrdCnt5_22_0 :23;
            uint32 latencyThrdCnt4_31_23:9;

            uint32 latencyThrdCnt6_22_0 :23;
            uint32 latencyThrdCnt5_31_23:9;

            uint32 latencyThrdCnt7_22_0 :23;
            uint32 latencyThrdCnt6_31_23:9;

            uint32 rsv1                 :23;
            uint32 latencyThrdCnt7_31_23:9;
        }mon; 
    }u;
};

struct temp_irm_resrc_mon_info_tmm_s
{
    /*word0~3*/
    union
    {
        struct
        {
            uint32 rsv1                   : 5;
            uint32 channelId              : 7;
            uint32 pktBufCnt              : 17;
            uint32 monInfoType            : 3;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g1;
        struct
        {
            uint32 scCnt_1_11_0           : 12;
            uint32 scCnt_0_16_0           : 17;
            uint32 monInfoType            : 3;

            uint32 scCnt_3_9_0            : 10;
            uint32 scCnt_2_16_0           : 17;
            uint32 scCnt_1_16_12          : 5;

            uint32 rsv1                   : 25;
            uint32 scCnt_3_16_10          : 7;
        }g2;

        struct
        {
            uint32 criticalCnt_11_0       : 12;
            uint32 totalCnt               : 17;
            uint32 monInfoType            : 3;

            uint32 rsv1                   : 10;
            uint32 c2cCnt                 : 17;
            uint32 criticalCnt_16_12      : 5;

            uint32 rsv2                   : 32;
        }g3;

        struct
        {
            uint32 rsv1                   : 8;
            uint32 mappedTc               : 3;
            uint32 portTcCntValid         : 1;
            uint32 portTcCnt              : 17;
            uint32 monInfoType            : 3;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g4;

        struct
        {
            uint32 rsv1                   : 3;
            uint32 channelId              : 7;
            uint32 pktBufCnt              : 17;
            uint32 mappedSc               : 2;
            uint32 monInfoType            : 3;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g5;

        struct
        {
            uint32 rsv1                   : 9;
            uint32 mappedSc               : 2;
            uint32 portScCntValid         : 1;
            uint32 portScCnt              : 17;
            uint32 monInfoType            : 3;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g6;
    }u;
};

struct ms_irm_mon_tmm_s
{
    uint32 u_30_0                         : 31;
    uint32 infoType                       : 1;

    uint32 u_62_31                        : 32;

    uint32 u_94_63                        : 32;
};

struct temp_erm_resrc_mon_info_tmm_s
{
    /*word0~3*/
    union
    {
        struct
        {
            uint32 ucastBufCnt_11_0       : 12;
            uint32 pktBufCnt              : 17;
            uint32 monInfoType            : 3;

            uint32 rsv1                   : 2;
            uint32 channelId              : 8;
            uint32 mcastBufCnt            : 17;
            uint32 ucastBufCnt_16_12      : 5;

            uint32 rsv2                   : 32;

        }g1;
        struct
        {
            uint32 scCnt_1_11_0           : 12;
            uint32 scCnt_0_16_0           : 17;
            uint32 monInfoType            : 3;

            uint32 scCnt_3_9_0            : 10;
            uint32 scCnt_2_16_0           : 17;
            uint32 scCnt_1_16_12          : 5;

            uint32 rsv1                   : 25;
            uint32 scCnt_3_16_10          : 7;
        }g2;

        struct
        {
            uint32 spanCnt_11_0           : 12;
            uint32 totalCnt               : 17;
            uint32 monInfoType            : 3;

            uint32 criticalCnt_9_0        : 10;
            uint32 criticalCnt            : 17;
            uint32 spanCnt_16_12          : 5;

            uint32 rsv1                   : 25;
            uint32 criticalCnt_16_10      : 7;
        }g3;

        struct
        {
            uint32 rsv1                   : 4;
            uint32 detailedType           : 2;
            uint32 queueOffset            : 5;
            uint32 queueCntValid          : 1;
            uint32 queueCnt               : 17;
            uint32 monInfoType            : 3;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g4;

        struct
        {
            uint32 rsv1                   : 2;
            uint32 sc                     : 2;
            uint32 channelId              : 8;
            uint32 pktBufCnt              : 17;
            uint32 monInfoType            : 3;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g5;

        struct
        {
            uint32 queueCnt_14_0          : 15;
            uint32 queueId                : 14;
            uint32 monInfoType            : 3;

            uint32 rsv1                   : 30;
            uint32 queueCnt_16_15         : 2;

            uint32 rsv2                   : 32;
        }g6;

        struct
        {
            uint32 rsv1                   : 4;
            uint32 channelId              : 8;
            uint32 pktBufCnt              : 17;
            uint32 monInfoType            : 3;

            uint32 rsv2                   : 32;

            uint32 rsv3                   : 32;
        }g7;
    }u;
};

struct temp_erm_mb_mon_info_tmm_s
{
    union
    {
        struct
        {
            uint32 mcastBufCnt_14_0       : 15;
            uint32 ucastBufCnt            : 17;
        }channel;
        struct
        {
            uint32 rsv1                   : 15;
            uint32 totalCnt               : 17;
        }total;
        struct
        {
            uint32 rsv1                   : 13;
            uint32 id                     : 2;
            uint32 scCnt                  : 17;
        }sc;
        struct
        {
            uint32 rsv1                   : 15;
            uint32 criticalCnt            : 17;
        }critical;
        struct
        {
            uint32 rsv1                   : 15;
            uint32 c2cCnt                 : 17;
        }c2c;
    }u;

    uint32 rsv                            : 17;
    uint32 microburstType                 : 3;
    uint32 u_data                         : 12;
};

struct ms_erm_mon_tmm_s
{
    uint32 u_30_0                 :31;
    uint32 infoType               :1;

    uint32 u_62_31                :32;

    uint32 u_94_63                :32;

    uint32 u_126_95               :32;
};

struct sys_learning_aging_decode_tmm_s
{
    uint32 uShare_0_8               : 9;
    uint32 is_learning              : 1;
    uint32 hash_result_index        : 21;
    uint32 is_learning_dma          : 1;

    uint32 uShare_9_40              : 32;

    uint32 macsa_0_20               : 21;
    uint32 uShare_41_51             : 11;

    uint32 vsi_id_0_4               : 5;
    uint32 macsa_21_47              : 27;

    uint32 rsv_0                    : 3;
    uint32 fibhost0hashconflict     : 1;
    uint32 fast_learning_en         : 1;
    uint32 learning_source_port     : 16;
    uint32 is_global_src_port       : 1;
    uint32 vsi_id_5_14              : 10;
};
struct sys_dsmac_decode_tmm_s
{
    uint32  u1__0_30:31;
    uint32  isRouterMac: 1;
    
    uint32  u3__0_1:2;
    uint32  u2_: 16;
    uint32  u1__31_44:14;
    
    uint32  fastLearningEn: 1;
    uint32  localAddress: 1;
    uint32  protocolExceptionEn: 1;
    uint32  stormCtlEn: 1;
    uint32  srcMismatchDiscard: 1;
    uint32  srcMismatchLearnEn: 1;
    uint32  learnSource: 1;
    uint32  sourcePortCheckEn: 1;
    uint32  u1Type: 2;
    uint32  conversationCheckEn: 1;
    uint32  isConversation: 1;
    uint32  srcDiscard: 1;
    uint32  u3__2_20:19;
    
    uint32  rsv: 25;
    uint32  macUnKnown: 1;
    uint32  ponSelect: 1;
    uint32  logicDestPortValid: 1;
    uint32  u3Type: 1;
    uint32  macLimitEn: 1;
    uint32  isStatic: 1;
    uint32  macSaExceptionEn: 1;

};
/* FibHashKeyCpuReq */
struct ds_fib_hash_cpu_req_tmm_s
{
    /* word 0 */
    uint32 ipv6_da_high_0_31      : 32;
    /* word 1 */
    uint32 ipv6_da_high_32_63     : 32;
    /* word 2 */
    uint32 key_mac_0_22           : 23;
    uint32 static_count_en        : 1;
    uint32 ipv6_da_high_64_71     : 8;
    /* word 3 */
    uint32 key_ad_index_0_6       : 7;
    uint32 key_mac_23_47          : 25;
    /* word 4 */
    uint32 key_index_0_5          : 6;
    uint32 key_vrf_id             : 15;
    uint32 key_ad_index_7_17      : 11;
    /* words 5 */
    uint32 req_port_0_12          : 13;
    uint32 key_port_del_mode      : 1;
    uint32 key_del_type           : 2;
    uint32 key_index_6_21         : 16;
    /* word 6 */
    uint32 write_data_0_22        : 23;
    uint32 pon_rule_type          : 1;
    uint32 req_type               : 5;
    uint32 req_port_13_15         : 3;
    /* word 7 */
    uint32 write_data_23_54       : 32;
    /* word 8 */
    uint32 write_data_55_86       : 32;
    /* words 9 */
    uint32 rsv                    : 14;
    uint32 req_valid              : 1;
    uint32 write_data_87_103      : 17;
};
/* FibHashKeyCpuResult */
struct ds_fib_hash_cpu_res_tmm_s
{
    /* word 0 */
    uint32 lu_idx_0_13            : 14;
    uint32 ds_idx                 : 18;
    /* word 1 */
    uint32 read_data_0_18         : 19;
    uint32 key_done               : 1;
    uint32 conflict               : 1;
    uint32 pending                : 1;
    uint32 conflict_valid         : 1;
    uint32 key_hit                : 1;
    uint32 lu_idx_14_21           : 8;
    /* word 2 */
    uint32 read_data_19_50        : 32;
    /* word 3 */
    uint32 read_data_51_82        : 32;
    /* word 4 */
    uint32 read_data_83_114       : 32;
    /* word 5 */
    uint32 read_data_115_146      : 32;
    /* word 6 */
    uint32 rsv                    : 5;
    uint32 read_data_147_173      : 27;
};
/* FibHashCpuLookupReq */
struct ds_fib_cpu_look_req_tmm_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 rsv0                : 9;
    uint32 data_64_86          : 23;
    /* word 3 */
    uint32 data_87_118         : 32;
    /* word 4 */
    uint32 data_119_150        : 32;
    /* word 5 */
    uint32 rsv1                : 9;
    uint32 data_151_173        : 23;
    /* word 6 */
    uint32 data_174_205        : 32;
    /* word 7 */
    uint32 data_206_237        : 32;
    /* word 8 */
    uint32 rsv2                : 9;
    uint32 data_238_260        : 23;
    /* word 9 */
    uint32 data_261_292        : 32;
    /* word 10 */
    uint32 data_293_324        : 32;
    /* word 11 */
    uint32 rsv3                : 9;
    uint32 data_325_347        : 23;
    /* word 12 */
    uint32 rsv4                : 23;
    uint32 req_valid           : 1;
    uint32 req_interface       : 2;
    uint32 length_mode         : 2;
    uint32 hash_key_type       : 4; 
};
/* FibHashCpuLookupResult */
struct ds_fib_cpu_look_res_tmm_s
{
    uint32 rsv                 : 7;
    uint32 lookup_result_done  : 1;
    uint32 result_valid        : 1;
    uint32 conflict            : 1;
    uint32 lookup_result_valid : 1;  
    uint32 result_idx          : 21;
};
/* UserIdCpuLookupReq */
struct ds_scl_cpu_look_req_tmm_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 rsv0                : 11;
    uint32 data_64_84          : 21;
    /* word 3 */
    uint32 data_85_116         : 32;
    /* word 4 */
    uint32 data_117_148       : 32;
    /* word 5 */
    uint32 rsv1                : 11;
    uint32 data_149_169        : 21;
    /* word 6 */
    uint32 data_170_201        : 32;
    /* word 7 */
    uint32 data_202_233        : 32;
    /* word 8 */
    uint32 rsv2                : 11;
    uint32 data_234_254        : 21;
    /* word 9 */
    uint32 data_255_286        : 32;
    /* word 10 */
    uint32 data_287_318        : 32;
    /* word 11 */
    uint32 rsv3                : 11;
    uint32 data_319_339        : 21;
    /* word 12 */
    uint32 rsv4                : 28;
    uint32 req_valid           : 1;
    uint32 req_interface       : 1;
    uint32 length_mode         : 2;
};
/* UserIdCpuLookupResult */
struct ds_scl_cpu_look_res_tmm_s
{
    uint32 rsv                 : 6;
    uint32 is_tcam_hit         : 1;
    uint32 free_valid          : 1;
    uint32 lookup_req_done     : 1;
    uint32 conflict            : 1;
    uint32 result_valid        : 1;
    uint32 result_idx          : 21;
};
/* EgressSclCpuLookupReq */
struct ds_escl_cpu_look_req_tmm_s
{
    /* word 0 */
    uint32 data_0_31           : 32;
    /* word 1 */
    uint32 data_32_63          : 32;
    /* word 2 */
    uint32 rsv0                : 11;
    uint32 data_64_84          : 21;
    /* word 3 */
    uint32 rsv1                : 31;
    uint32 req_valid           : 1;
};
/* EgressSclCpuLookupResult */
struct ds_escl_cpu_look_res_tmm_s
{
    /* word 0 */
    uint32 result_idx0         : 16;
    uint32 result_idx1         : 16;
    /* word 1 */
    uint32 rsv                 : 23;
    uint32 lookup_result_done  : 1;
    uint32 is_tcam_hit0        : 1;
    uint32 is_tcam_hit1        : 1;
    uint32 conflict0           : 1;
    uint32 conflict1           : 1;
    uint32 free_valid0         : 1;
    uint32 free_valid1         : 1;
    uint32 result_valid0       : 1;
    uint32 result_valid1       : 1;
};
struct sys_fdbkey_encode_tmm_s
{
    uint32  vsiId_0_8:9;
    uint32  ponRuleType: 1;
    uint32  dsAdIndex: 18;
    uint32  hashType: 3;
    uint32  valid: 1;
    
    uint32  mappedMac_0_25:26;
    uint32  vsiId_9_14:6;
    
    uint32  pending: 1;
    uint32  mappedMac_26_47:22;
    uint32  rsv:9;

};
#if 0
struct sys_ds_ipv4_snake_tmm_s
{
    /* word0[0:31] */
    uint32 entry0_ipaddr_0_28:29;
    uint32 entry_type:3;
    /* word1[0:31] */
    uint32 entry1_ipaddr_0_4:5;
    uint32 entry0_masklen_0_5:6;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_ipaddr_29_31:3;
    /* word2[0:31] */
    uint32 rsv0:9;
    uint32 entry1_ipaddr_5_27:23;
    /* word3[0:31] */
    uint32 entry2_ipaddr_0_3:4;
    uint32 entry1_masklen_0_5:6;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_ipaddr_28_31:4;
    /* word4[0:31] */
    uint32 entry2_nexthop_0_3:4;
    uint32 entry2_ipaddr_4_31:28;
    /* word5[0:31] */
    uint32 rsv1:9;
    uint32 entry3_ipaddr_0_2:3;
    uint32 entry2_masklen_0_5:6;
    uint32 entry2_nexthop_4_17:14;
    /* word6[0:31] */
    uint32 entry3_nexthop_0_2:3;
    uint32 entry3_ipaddr_3_31:29;
    /* word7[0:31] */
    uint32 entry4_ipaddr_0_10:11;
    uint32 entry3_masklen_0_5:6;
    uint32 entry3_nexthop_3_17:15;
    /* word8[0:31] */
    uint32 rsv2:9;
    uint32 entry4_nexthop_0_1:2;
    uint32 entry4_ipaddr_11_31:21;
    /* word9[0:31] */
    uint32 entry5_ipaddr_0_9:10;
    uint32 entry4_masklen_0_5:6;
    uint32 entry4_nexthop_2_17:16;
    /* word10[0:31] */
    uint32 entry5_nexthop_0_9:10;
    uint32 entry5_ipaddr_10_31:22;
    /* word11[0:31] */
    uint32 rsv3:18;
    uint32 entry5_masklen_0_5:6;
    uint32 entry5_nexthop_10_17:8;
};
#endif
struct sys_ds_ipv4_ext_snake_tmm_s
{
    /* word0[0:31] */
    uint32 entry0_ipaddr_0_28:29;
    uint32 entry_type:3;
    /* word1[0:31] */
    uint32 entry1_ipaddr_0_3:4;
    uint32 entry0_bucketsel:1;
    uint32 entry0_masklen_0_5:6;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_ipaddr_29_31:3;
    /* word2[0:31] */
    uint32 rsv0:9;
    uint32 entry1_ipaddr_4_26:23;
    /* word3[0:31] */
    uint32 entry2_ipaddr_0_1:2;
    uint32 entry1_bucketsel:1;
    uint32 entry1_masklen_0_5:6;
    uint32 entry1_nexthop_0_17:18;
    uint32 entry1_ipaddr_27_31:5;
    /* word4[0:31] */
    uint32 entry2_nexthop_0_1:2;
    uint32 entry2_ipaddr_2_31:30;
    /* word5[0:31] */
    uint32 rsv1:9;
    uint32 entry2_bucketsel:1;
    uint32 entry2_masklen_0_5:6;
    uint32 entry2_nexthop_2_17:16;
    /* word6[0:31] */
    uint32 entry3_ipaddr_0_31;
    /* word7[0:31] */
    uint32 entry4_ipaddr_0_6:7;
    uint32 entry3_bucketsel:1;
    uint32 entry3_masklen_0_5:6;
    uint32 entry3_nexthop_0_17:18;
    /* word8[0:31] */
    uint32 rsv2:9;
    uint32 entry4_ipaddr_7_29:23;
    /* word9[0:31] */
    uint32 entry5_ipaddr_0_4:5;
    uint32 entry4_bucketsel:1;
    uint32 entry4_masklen_0_5:6;
    uint32 entry4_nexthop_0_17:18;
    uint32 entry4_ipaddr_30_31:2;
    /* word10[0:31] */
    uint32 entry5_nexthop_0_4:5;
    uint32 entry5_ipaddr_5_31:27;
    /* word11[0:31] */
    uint32 rsv3:12;
    uint32 entry5_bucketsel:1;
    uint32 entry5_masklen_0_5:6;
    uint32 entry5_nexthop_5_17:13;
};

struct sys_ds_ipv6_64_snake_tmm_s
{
    /* word0[0:31] */
    uint32 entry0_ipaddr0_0_28:29;
    uint32 entry_type:3;
    /* word1[0:31] */
    uint32 entry0_ipaddr1_0_28:29;
    uint32 entry0_ipaddr0_29_31:3;
    /* word2[0:31] */
    uint32 rsv0:9;
    uint32 entry0_masklen_0_1:2;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_ipaddr1_29_31:3;
    /* word3[0:31] */
    uint32 entry1_ipaddr0_0_25:26;
    uint32 entry0_masklen_2_7:6;
    /* word4[0:31] */
    uint32 entry1_ipaddr1_0_25:26;
    uint32 entry1_ipaddr0_26_31:6;

    /* word5[0:31] */
    uint32 rsv1:9;
    uint32 entry1_nexthop_0_16:17;
    uint32 entry1_ipaddr1_26_31:6;
    /* word6[0:31] */
    uint32 entry2_ipaddr0_0_22:23;
    uint32 entry1_masklen_0_7:8;
    uint32 entry1_nexthop_17_17:1;
    /* word7[0:31] */
    uint32 entry2_ipaddr1_0_22:23;
    uint32 entry2_ipaddr0_23_31:9;
    /* word8[0:31] */
    uint32 rsv2:9;
    uint32 entry2_nexthop_0_13:14;
    uint32 entry2_ipaddr1_23_31:9;
    /* word9[0:31] */
    uint32 rsv3:20;
    uint32 entry2_masklen_0_7:8;
    uint32 entry2_nexthop_14_17:4;
    /* word10[0:31] */
    uint32 rsv4;
    /* word11[0:31] */
    uint32 rsv5;
};

struct sys_ds_ipv6_128_snake_tmm_s
{
    /* word0[0:31] */
    uint32 entry0_ipaddr0_0_28:29;
    uint32 entry_type:3;
    /* word1[0:31] */
    uint32 entry0_ipaddr1_0_28:29;
    uint32 entry0_ipaddr0_29_31:3;
    /* word2[0:31] */
    uint32 rsv0:9;
    uint32 entry0_ipaddr2_0_19:20;
    uint32 entry0_ipaddr1_29_31:3;
    /* word3[0:31] */
    uint32 entry0_ipaddr3_0_19:20;
    uint32 entry0_ipaddr2_20_31:12;
    /* word4[0:31] */
    uint32 entry0_masklen_0_1:2;
    uint32 entry0_nexthop_0_17:18;
    uint32 entry0_ipaddr3_20_31:12;
    /* word5[0:31] */
    uint32 rsv1:9;
    uint32 entry1_ipaddr0_0_16:17;
    uint32 entry0_masklen_2_7:6;
    /* word6[0:31] */
    uint32 entry1_ipaddr1_0_16:17;
    uint32 entry1_ipaddr0_17_31:15;
    /* word7[0:31] */
    uint32 entry1_ipaddr2_0_16:17;
    uint32 entry1_ipaddr1_17_31:15;
    /* word8[0:31] */
    uint32 rsv2:9;
    uint32 entry1_ipaddr3_0_7:8;
    uint32 entry1_ipaddr2_17_31:15;
    /* word9[0:31] */
    uint32 entry1_nexthop_0_7:8;
    uint32 entry1_ipaddr3_8_31:24;
    /* word10[0:31] */
    uint32 rsv3:14;
    uint32 entry1_masklen_0_7:8;
    uint32 entry1_nexthop_8_17:10;
    /* word11[0:31] */
    uint32 rsv4;
};
#endif

typedef struct ds_eth_mep_tmm_s  ds_eth_mep_tmm_t;
typedef struct ds_eth_rmep_tmm_s  ds_eth_rmep_tmm_t;
typedef struct ds_bfd_mep_tmm_s  ds_bfd_mep_tmm_t;
typedef struct ds_bfd_rmep_tmm_s  ds_bfd_rmep_tmm_t;
typedef struct ds_desc_tmm_s  ds_desc_tmm_t;
typedef struct ms_packet_header_tmm_s  ms_packet_header_tmm_t;
typedef struct ms_packet_header_tmm_tail_s  ms_packet_header_tmm_tail_t;
typedef struct sys_ipfix_l2_hashkey_decode_s sys_ipfix_l2_hashkey_decode_t;
typedef struct sys_ipfix_ipv4_hashkey_decode_s sys_ipfix_ipv4_hashkey_decode_t;
typedef struct sys_ipfix_mpls_hashkey_decode_s sys_ipfix_mpls_hashkey_decode_t;
typedef struct sys_ipfix_l2l3_hashkey_decode_s sys_ipfix_l2l3_hashkey_decode_t;
typedef struct sys_ipfix_ipv6_hashkey_decode_s sys_ipfix_ipv6_hashkey_decode_t;
typedef struct sys_ipfix_ipv4_short_hashkey_decode_s sys_ipfix_ipv4_short_hashkey_decode_t;
typedef struct sys_ipfix_ipv6_short_hashkey_decode_s sys_ipfix_ipv6_short_hashkey_decode_t;
typedef struct sys_ipfix_half_record0_decode_s sys_ipfix_half_record0_decode_t;
typedef struct sys_ipfix_half_record1_decode_s sys_ipfix_half_record1_decode_t;
typedef struct sys_ipfix_full_record0_decode_s sys_ipfix_full_record0_decode_t;
typedef struct sys_ipfix_full_record1_decode_s sys_ipfix_full_record1_decode_t;
typedef struct cpu_info_tmm_s  cpu_info_tmm_t;
typedef struct ms_efd_mon_tmm_s  ms_efd_mon_tmm_t;
typedef struct ms_latency_mon_tmm_s  ms_latency_mon_tmm_t;
typedef struct temp_irm_resrc_mon_info_tmm_s  temp_irm_resrc_mon_info_tmm_t;
typedef struct ms_irm_mon_tmm_s  ms_irm_mon_tmm_t;
typedef struct temp_erm_resrc_mon_info_tmm_s  temp_erm_resrc_mon_info_tmm_t;
typedef struct temp_erm_mb_mon_info_tmm_s  temp_erm_mb_mon_info_tmm_t;
typedef struct ms_erm_mon_tmm_s  ms_erm_mon_tmm_t;
typedef struct sys_learning_aging_decode_tmm_s sys_learning_aging_decode_tmm_t;
typedef struct sys_dsmac_decode_tmm_s sys_dsmac_decode_tmm_t;
typedef struct ds_fib_hash_cpu_req_tmm_s ds_fib_hash_cpu_req_tmm_t;
typedef struct ds_fib_hash_cpu_res_tmm_s ds_fib_hash_cpu_res_tmm_t;
typedef struct ds_fib_cpu_look_req_tmm_s ds_fib_cpu_look_req_tmm_t;
typedef struct ds_fib_cpu_look_res_tmm_s ds_fib_cpu_look_res_tmm_t;
typedef struct ds_scl_cpu_look_req_tmm_s ds_scl_cpu_look_req_tmm_t;
typedef struct ds_scl_cpu_look_res_tmm_s ds_scl_cpu_look_res_tmm_t;
typedef struct ds_escl_cpu_look_req_tmm_s ds_escl_cpu_look_req_tmm_t;
typedef struct ds_escl_cpu_look_res_tmm_s ds_escl_cpu_look_res_tmm_t;
typedef struct sys_fdbkey_encode_tmm_s sys_fdbkey_encode_tmm_t;
typedef struct sys_ds_ipv4_snake_tmm_s sys_ds_ipv4_snake_tmm_t;
typedef struct sys_ds_ipv4_ext_snake_tmm_s sys_ds_ipv4_ext_snake_tmm_t;
typedef struct sys_ds_ipv6_64_snake_tmm_s sys_ds_ipv6_64_snake_tmm_t;
typedef struct sys_ds_ipv6_128_snake_tmm_s sys_ds_ipv6_128_snake_tmm_t;

#ifdef __cplusplus
}
#endif

#endif

